개발모음집

Unity 2D 게임, Player따라 카메라가 따라가도록 하는 기능 본문

TheRestDevelop

Unity 2D 게임, Player따라 카메라가 따라가도록 하는 기능

void 2018. 6. 11. 09:00

using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class Camerafollow : MonoBehaviour {


public float smoothTimeX, smoothTimeY;

public Vector2 velocity;

public GameObject player;

public Vector2 minPos, maxPos;

public bool bound;



// 캐릭터 초기화

void Start () {

player = GameObject.FindGameObjectWithTag ("Player");

}


// 캐릭터의 위에 따라 카메라가 이동하도록 하는 메서드

void FixedUpdate () {

float posX = Mathf.SmoothDamp (transform.position.x, player.transform.position.x, ref velocity.x, smoothTimeX);

// Mathf.SmoothDamp는 천천히 값을 증가시키는 메서드이다.

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(bound) {

//Mathf.Clamp(현재값, 최대값, 최소값);  현재값이 최대값까지만 반환해주고 최소값보다 작으면 그 최소값까지만 반환합니다.

transform.position = new Vector3 (Mathf.Clamp (transform.position.x, minPos.x, maxPos.x),

Mathf.Clamp (transform.position.y, minPos.y, maxPos.y),

Mathf.Clamp (transform.position.z, transform.position.z, transform.position.z)

);

}

}

}




1. 이 스크립트를 Hierachy의 메인카메라에 넣는다.

2.  아래의 사진와 같이 각 x,y 축의 mix position과 max position을 입력해주면 된다.