using UnityEngine;
using System.Collections;
public class FollowCam : MonoBehaviour {
public Transform target; // 추적할 타겟 게임오브젝트의 Transform 변수.
public float dist = 10.0f; // 카메라와의 일정 거리.
public float height = 5.0f; // 카메라와의 높이 설정.
public float dampRotate = 5.0f; // 부드러운 회전을 위한 변수.
private Transform tr; // 카메라 자신의 Transform 변수.
// Use this for initialization
void Start () {
tr = GetComponent<Transform>(); // 카메라 자신의 Transform 을 할당.
}
/*
* 추적할 타겟의 이동이 종료된 이후에 카메라가 추적하기 위해 LateUpdate() 사용.
*/
void LateUpdate()
{
// 카메라 Y축을 타겟의 Y축 회전각도로 부드럽게 회전.
// Mathf.LerpAngle(a,b,t) : t시간동안 a부터 b까지 변경되는 각도.
float currYAngle = Mathf.LerpAngle(tr.eulerAngles.y, target.eulerAngles.y, dampRotate * Time.deltaTime);
// 쿼터니언 데이터 타입으로 변환
Quaternion rot = Quaternion.Euler(0, currYAngle, 0);
// 카메라의 위치를 타겟이 회전한 각도만큼 회전한 이후, dist만큼 뒤쪽으로 배치하고 height 만큼 위로 올림.
tr.position = target.position - (rot * Vector3.forward * dist) + (Vector3.up * height);
// 카메라가 타겟 게임 오브젝트를 바라보게 설정.
tr.LookAt(target);
}
}
'unity' 카테고리의 다른 글
Unity 에 AdMob 달기 (0) | 2015.11.23 |
---|---|
unity 에서 형상관리 툴로 merge 할 폴더 (0) | 2015.11.23 |
Android 에서 종료후 재실행시 오동작(- Application.Quit() 에러.) (0) | 2015.11.23 |
스프라이트 관련 참고자료 링크 (0) | 2015.11.23 |
유니티 해상도 고정(안드로이드) (0) | 2015.11.20 |