//총알을 180도로 아래 방향으로 총알의 방향벡터를 만드는 로직 
 void MakeCircle()
 {
     Vector3 targetPos = playerTransform.position;
     Vector3 myPos = new Vector3(0f, 1.4f, 0);
     Vector3 vectorToTarget = (targetPos - myPos).normalized;
     int n = 30;

     for(int i = 0; i < n; i ++)
     {
         GameObject MakeCircle = Instantiate(bullet, myPos, Quaternion.identity);
         Vector2 circleVec = new Vector2(Mathf.Cos((Mathf.PI) * i / n ), Mathf.Sin(-(Mathf.PI) * i / n ));
         MakeCircle.GetComponent<Rigidbody2D>().AddForce(circleVec * 30f);
     }
     
 }

삼각함수를 통해서 원하는 각도의 좌표방향을 알수있다.

 

Mathf.Cos()은 x축 방향을 의미, Mathf.Sin()은 y축 방향을 의미한다.

단위 원 일때 (반지름이 1인 원) Cos = 밑변 / 빚면인데 빚면은 반지름을 나타내고 결국 밑변은 x좌표값을 나타낸다.

즉 Cos(degree) = x 좌표를 의미한다. Sin도 이와 같은 의미를 취한다 .

 

Mathf.Cos()의 매개변수는 Radian값을 의미하므로 (Mathf.Pi / 180) * degree 라는 변환식을 사용하거나

DegtoRad 매크로 함수를 사용해셔 변환해서 사용하면된다. 

 

지금 위의 함수는 180도의 범위만 필요하기에  Mathf.Pi만 사용하였다. 

 


게임 개발에서 삼각함수는 뗄래야 땔수 없는 존재지만 오늘 개발중에 살짝 과부하가 와서

기억을 전혀 못했었다.. 공부를 다시 할 필요가 있다. 

+ Recent posts