Player에 카메라 붙이기
|
플레이어에 객체에 "Player" 태그를 달아줍시다
아래의 소스를 카메라에 부착합니다.
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class CameraFollow : MonoBehaviour {
- private Vector2 velocity;
- private float smoothTimeY;
- private float smoothTimeX;
- public GameObject player;
- public bool bounds;
- public Vector3 minCameraPos;
- public Vector3 maxCameraPos;
- void Start()
- {
- player = GameObject.FindGameObjectWithTag ("Player");
- }
- void FixedUpdate()
- {
- float posX = Mathf.SmoothDamp (transform.position.x, player.transform.position.x, ref velocity.x, smoothTimeX);
- float posY = Mathf.SmoothDamp (transform.position.y, player.transform.position.y, ref velocity.y, smoothTimeY);
- transform.position = new Vector3 (posX, posY, transform.position.z);
- if(bounds)
- {
- transform.position = new Vector3(
Mathf.Clamp(transform.position.x,minCameraPos.x,maxCameraPos.x),
Mathf.Clamp(transform.position.y,minCameraPos.y,maxCameraPos.y),
Mathf.Clamp(transform.position.z,minCameraPos.z,maxCameraPos.z)); - }
- }
- }
그리고 플레이 하면 !
※ 캐릭터 움직이는건 이전 포스팅 참조!
기타정리
|
SmoothDamp
원하는 목표를 향해서 점차적으로 변화시킨다.
public static Vector3 SmoothDamp(
Vector3 current,
Vector3 target,
ref Vector3 currentVelocity,
float smoothTime,
float maxSpeed = Mathf.Infinity,
float deltaTime = Time.deltaTime
);
current
현재 위치.
target
도달하려는 위치.
currentVelocity
현재 속도, 이 값은 매번 호출되는 함수에 의해 수정됩니다.
smoothTime
타겟에 도달하기 위한 대략적인 시간. 작은 값일수록 타겟에 빠르게 도달합니다.
maxSpeed
선택적으로 최대속도를 고정할 수 있도록 합니다.
deltaTime
이 함수가 마지막으로 호출되고 나서의 경과 시간. default는 Time.deltaTime.
Clamp
값을 최소값과 최대값 사이에서 고정시킨다.
Mathf.Clamp (value, 최소값, 최대값)
Mathf.Clamp (15, 1, 10) 결과는 10이다.
반응형
'응용프로그램 > 유니티(Unity)' 카테고리의 다른 글
Unity2D_UI_Panel, Text, Button 만들기 (0) | 2017.02.14 |
---|---|
Unity2D_UI_Canvas 설정하기 (0) | 2017.02.14 |
Unity2D IEnumerator , 점프 (0) | 2017.02.11 |
Unity2D 애니메이션 편집하기 (0) | 2017.02.10 |
Unity2D_착지 애니메이션, 충돌체(Collider) (0) | 2017.02.10 |