행성을 공격하고 되돌아 나왔다가 다시 공격을 반복하는 우주선 표현하기.

Unity 5로 '유니티로 만드는 게임개발총론' 2장 2D 정점기반 우주 슈팅 게임 예제 따라 하기.

이 예제는 7월 14일에 플래시+액션스크립트로 구현했던 적이 있었다.

* 각도 나누기: transform.rotation = Quaternion.Slerp(시작 각도, 마지막 각도, 나눌 수);
ex) transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(direction), rotSpeed * Time.deltaTime);
transform.rotation = Quaternion.Slerp(현재 각도, 목표를 바라보는 각도, 회전속도 * Time.deltaTime);

* 목표 바라보기:
1) this.transform.LookAt(targert.transform.position);
2) this.transform.rotation = Quaternion.LookRotation(target.transform.position - this.transform.position);
1,2번은 동일한 작업을 수행한다.

* 제거될 시간 정하기: Destroy(제거될 게임오브젝트, 제거될 시간(초));

15/10/16 금

- 현재의 버그: 주인공이 타겟 목표 보다 위에 보이게 하기 위해 높은 y위치로 설정해 뒀지만 다가갈 때 타겟을 향해 회전하기 때문에 시간이 지나면 주인공이 타겟인 행성에 가려 보이지 않게 되는 현상이 발생한다.
y축의 회전을 막아야 할텐데 어떻게 y축의 회전만 막을 수 있는지 잘 모르겠다.

-해결(15/10/25): 회전을 막을게 아니라 회전한 뒤 y축의 위치를 다시 0으로 설정해 주면 되는 것으로 LookAt() 함수로 회전한 뒤에 단순히 아래 한 줄만 추가해 주면 해결되는 간단한 문제였다.

transform.position.y = 0; //y축으로의 이동 방지용 y축 위치 고정.