반응형

주위 배경을 위해서 Background 텍스쳐 파일을 하이 라키 뷰에 올리고 중앙에 맞춥니다 

그리고 텍스쳐 스케일을 카메라뷰보다 넓게 4,4,1로 맞춥니다  

 

 

새로운 오브젝트를 생성하고 이름을 CameraFollow 라 합니다 

 

CameraFollow 오브젝트의 자식으로 Main Camera를 옮겨다 놓습니다 

CameraFollow 스크립트를 작성합니다 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    //Player 포지션 
    public Transform playerTransform;

    public float speed;

    public float minX;
    public float maxX;
    public float minY;
    public float maxY;


    // Start is called before the first frame update
    void Start()
    {
        //Player 포지션을 가지고 온다 
        transform.position = playerTransform.position;
    }

    // Update is called once per frame
    void Update()
    {
        if (playerTransform != null)
        {
            //화면의 X축의 최대점과 최소점을 넘지않게 설정
            float clampedX = Mathf.Clamp(playerTransform.position.x, minX, maxX);
            //화면의 Y축의 최대점과 최소점을 넘지않게 설정
            float clampedY = Mathf.Clamp(playerTransform.position.y, minY, maxY);

            //카메라를 clampedX,clampedY 방향으로 speed 속도를 부드럽게 이동
            transform.position = Vector2.Lerp(transform.position,new Vector2(clampedX,clampedY), speed);
        }
        
    }
}

 

 

Player 오브젝트를 드래그하여 Player Transform 빈 공간에 드래그하여 붙이고 speed를 0.12  정도 합니다 

 

CameraFollow오브젝트를 X 쪽으로 -11 만큼 움직입니다 카메라가 배경 보이는 끝선에 맞춤니다 

그리고 Min X 에 -11을 넣습니다 

 

 

CameraFollow를 x축으로 그림영역 최댓값에 맞추고  MaxX를 11을 넣습니다 

 

CameraFollow를 y축으로 그림영역 최솟값에 맞추고  MinY를 -7을 넣습니다 

CameraFollow를 y축으로 그림영역 최댓값에 맞추고  MaxY를 5를 넣습니다 

 

 

하이라키뷰에 Stoper오브젝트 4개를 생성합니다 

 

Stoper 오브젝트에 BoxCollider2D를 붙이고 각각 위치를 배경 끝에 놓습니다 

 

 

Player 오브젝트에 BoxCollider2D 를 붙입니다 

게임을 실행하여 Player의 움직임에 Camera가 따라가고 배경의 보이는 부분까지만 Player가 제한되는 움직임을 보입니다 

 

 

반응형

+ Recent posts