반응형
유니티 내장 기능을 이용하여 플레이어가 올라타면 위아래로 흔들리며 움직이는 발판을 구현한다.
사용한 컴포넌트
1. LineRenderer
2. SpringJoint
발판이 될 오브젝트에 LineRenderer와 SpringJoint를 부착한다.
LineRenderer에는 벽에 걸려있는 것처럼 보이는 역할을 하는 오브젝트를 부착한다.
SpringJoint는 적절하게 조정한다.
전체 코드
public class Draw_MoveLine : MonoBehaviour
{
[Header("라인을 그리는 스크립트")]
[SerializeField] private Draw_CollisionLine m_drawLine;
[Header("라인의 움직일 축이되는 오브젝트")]
[SerializeField] private Transform m_axisObject;
private void OnCollisionStay(Collision collision)
{
if(collision.gameObject.CompareTag("Player"))
m_drawLine.DrawLine(1, m_axisObject.position);
}
private void OnCollisionExit(Collision collision)
{
if (collision.gameObject.CompareTag("Player"))
{
Debug.Log("발판 탈출1");
StartCoroutine(DrawMaintain());
}
}
private IEnumerator DrawMaintain()
{
float _runtime = 0;
while (_runtime < 2f)
{
Debug.Log("발판 탈출2");
_runtime += Time.deltaTime;
m_drawLine.DrawLine(1, m_axisObject.position);
yield return null;
}
}
}
플레이어가 발판에 올라 타 있는 동안에는 라인렌더러를 동적으로 계속 그려주고, 발판을 벗어날 때 발판이 움직이는 시간동안만 라인렌더러를 그려주도록 하였다.
반응형
'유니티 > 유니티 C#' 카테고리의 다른 글
[유니티/C#] Reflection으로 enum 받아오기 (0) | 2023.07.22 |
---|---|
[유니티/C#] 마우스 위치로 바라보기 (0) | 2023.07.12 |
[유니티/C#] UI 슬라이드 기능 만들기 (DOTween) (0) | 2023.06.15 |
[유니티/C#] 터치로 화면이동 (0) | 2022.08.07 |
[유니티/C#] 터치/마우스로 카메라 이동 (0) | 2022.08.03 |