잔잔이네
article thumbnail

카메라를 다루는데에는 여러 방법이 있는데 간단하게 해볼 수 있는 카메라의 활용을 해보겠습니다.

 


1인칭

가장 간단한 방법으로 Camera 오브젝트를 대상 게임 오브젝트의 자식으로 만들어주면 부모 오브젝트가 움직일때 따라 움직이게 된다.


3인칭과 Follow Camera

 

Follow Camera

using UnityEngine;

	public class SmoothFollow : MonoBehaviour
	{

		// The target we are following
		[SerializeField]
		private Transform target;
		// The distance in the x-z plane to the target
		[SerializeField]
		private float distance = 10.0f;
		// the height we want the camera to be above the target
		[SerializeField]
		private float height = 5.0f;

		[SerializeField]
		private float rotationDamping;
		[SerializeField]
		private float heightDamping;

		// Use this for initialization
		void Start() { }

		// Update is called once per frame
		void LateUpdate()
		{
			// Early out if we don't have a target
			if (!target)
				return;

			// Calculate the current rotation angles
			var wantedRotationAngle = target.eulerAngles.y;
			var wantedHeight = target.position.y + height;

			var currentRotationAngle = transform.eulerAngles.y;
			var currentHeight = transform.position.y;

			// Damp the rotation around the y-axis
			currentRotationAngle = Mathf.LerpAngle(currentRotationAngle, wantedRotationAngle, rotationDamping * Time.deltaTime);

			// Damp the height
			currentHeight = Mathf.Lerp(currentHeight, wantedHeight, heightDamping * Time.deltaTime);

			// Convert the angle into a rotation
			var currentRotation = Quaternion.Euler(0, currentRotationAngle, 0);

			// Set the position of the camera on the x-z plane to:
			// distance meters behind the target
			transform.position = target.position;
			transform.position -= currentRotation * Vector3.forward * distance;

			// Set the height of the camera
			transform.position = new Vector3(transform.position.x ,currentHeight , transform.position.z);

			// Always look at the target
			transform.LookAt(target);
		}
	}

위 스크립트는 Unity Standard Assets에서 제공하는 스크립트이다.

따라오는 카메라를 사용할 수 있고 아래의 설정으로 세팅도 다르게 할 수 있다.

Target에 원하는 대상을 주고 직접 실행해보며 Distance와 Height 등 값을 바꿔주면 된다.

 

 


백미러

백미러 효과를 주는 카메라를 만드는 것도 간단하다.

 

BackCamera라는 카메라를 만들어준 다음, 프로젝트 뷰에서 우클릭하여 [Create] - [Render texture]하여 새로운 렌더텍스쳐를 만든다. 이것을 mBackMirror라는 매터리얼의 알베도(Albedo)에 넣어주고 BackCamera의 Target Texture에 드래그하여 넣어주면 된다. 그리고  BackMirror라는 Quad에 mBackMirror 매터리얼을 넣어주면 백미러와 같은 카메라효과를 낼 수 있다.

 


MultiCamera

 

감시카메라처럼 여러각도에서 여러카메라로 지켜볼 수 있는 방법이다.

 

여러 카메라 오브젝트를 생성 후, 카메라 컴포넌트에서 Viewport Rect의 X, Y 값을 바꾸면 카메라의 위치가 바뀌고

W, H를 바꾸면 카메라의 크기가 바뀐다

 

 

 

profile

잔잔이네

@잔잔잔잔

🌈

검색 태그