게임 프로그래밍
[Unity] AddForce 궤도 구하기 본문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
private void setTrajectoryPoints(Vector3 pStartPosition, Vector3 pVelocity) // 시작 위치, addForce에 들어는
{
float velocity = Mathf.Sqrt((pVelocity.x * pVelocity.x) + (pVelocity.y * pVelocity.y)); // 속도 구하기
float angle = Mathf.Rad2Deg * (Mathf.Atan2(pVelocity.y, pVelocity.x)); // 각도 구하기
float fTime = 0;
int tragectoryNum = 10; // 궤도 개수
fTime += 0.1f;
for (int i = 0; i < tragectoryNum; i++)
{
float dx = velocity * fTime * Mathf.Cos(angle * Mathf.Deg2Rad);
float dy = velocity * fTime * Mathf.Sin(angle * Mathf.Deg2Rad) - (Physics2D.gravity.magnitude * fTime * fTime / 2.0f);
Vector3 pos = new Vector3(pStartPosition.x + dx, pStartPosition.y + dy, -2);
trajectoryPoints[i].transform.position = pos;
trajectoryPoints[i].gameObject.SetActive(true);
trajectoryPoints[i].transform.eulerAngles = new Vector3(0, 0, Mathf.Atan2(pVelocity.y - (Physics.gravity.magnitude) * fTime, pVelocity.x) * Mathf.Rad2Deg); // 보고있는 각도 계산
fTime += 0.1f;
}
}
|
cs |
Unity에서 사용하는 AddForce에 궤적을 구하는 코드이다. 속도와 각도를 구한후 시간마다 위치 값을 계산해준다.
'프로그래밍 > 유니티' 카테고리의 다른 글
[Unity] Json사용하기 (0) | 2020.03.05 |
---|---|
[Unity] 슬로우모션 (0) | 2020.03.04 |
[Unity] object에 동일한 Component 여러개 있을때 GetComponent (0) | 2020.01.28 |
[유니티] 스크롤뷰 하나씩 넘기기 (0) | 2020.01.15 |
[UNITY] Scriptableobject에 대해서 (0) | 2020.01.07 |
Comments