본문 바로가기
개발/C#

유니티 C# 포물선 궤적 그리기 간단 구현 Parabolic Trajectory

by SPNK 2023. 8. 13.
반응형
  • 코드 작성
using UnityEngine;

public class ParabolicTrajectory : MonoBehaviour
{
    public float initialSpeed = 10f;     // 초기 속도
    public float angle = 45f;            // 발사 각도

    private void Start()
    {
        DrawParabolicTrajectory();
    }

    void DrawParabolicTrajectory()
    {
        // 초기 속도와 발사 각도를 라디안으로 변환합니다.
        float radians = angle * Mathf.Deg2Rad;

        // 초기 속도를 x, y 성분으로 분리합니다.
        float initialVelocityX = initialSpeed * Mathf.Cos(radians);
        float initialVelocityY = initialSpeed * Mathf.Sin(radians);

        // 중력 가속도를 가져옵니다.
        float gravity = Mathf.Abs(Physics.gravity.y);

        // 시간 간격
        float timeStep = 0.02f;

        // 초기 위치 설정
        Vector3 currentPosition = transform.position;

        // 포물선 궤적 그리기
        for (float t = 0; t < 10f; t += timeStep)
        {
            float x = initialVelocityX * t;
            float y = (initialVelocityY * t) - (0.5f * gravity * t * t);

            // 현재 시간에 따른 위치 계산
            Vector3 newPosition = new Vector3(x, y, 0f);

            // 궤적 선 그리기
            Debug.DrawLine(currentPosition, currentPosition + newPosition, Color.red, 0.1f);

            // 현재 위치 갱신
            currentPosition = newPosition;
        }
    }
}
반응형

댓글