본문 바로가기
C#

[C#][Unity]시점을 이동하는 카메라!

by teamnova 2021. 9. 27.

안녕하세요!!

오늘 포스팅 할 주제는~ 좌클릭으로 시점이동이 가능한 카메라를 만들어 보도록 하겠습니다!!

이런 카메라는 각종 3D 게임에서 많이 활용 되고있는데요. 

간단하게 구현이 가능하기 때문에 이런 간단한 코드로 여러가지로 활용 하셨으면 좋겠습니다!

 

일단 시작은 게임상에 아무 오브젝를 올려주도록 하겠습니다. 이 오브젝트는 카메라 부빙의 중심이 됩니다.

저는 귀여운 돼지로 했습니다!! 꿀꿀...

이렇게 만들어진 오브젝트에 빈오브젝트를 새로 만들고 그 아래에 카메라를 하나 만들어 주도록 하겠습니다!

오브젝트는 이렇게 구성되게 됩니다!

여기까지 만들었으니 이제 카메라 무빙을 관리할 GameManager  오브젝트를 만들고 그오브젝트에 스크립트를 연결 시켜서 카메라 무빙을 구현해 주도록 하겠습니다.

 

이렇게 만들어진 오브젝트에 스크립트를 작성해 주도록 하겠습니다.

 

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

public class CameraMoving : MonoBehaviour
{
    public Transform centralAxis;
    public float camSpeed;
    float mouseX;
    float mouseY;
    public Camera camera;

    void CamMove() {
        if (Input.GetMouseButton(1)) {
            mouseX += Input.GetAxis("Mouse X");
            mouseY += Input.GetAxis("Mouse Y")* -1;

            centralAxis.rotation = Quaternion.Euler(new Vector3(centralAxis.rotation.x + mouseY, centralAxis.rotation.y + mouseX, 0) * camSpeed);
        }
    }
    // Start is called before the first frame update
    void Start()
    {
        camera =Camera.main;
    }

    // Update is called once per frame
    void Update()
    {
        CamMove();
    }
 }

 

코드는 이렇습니다!

 간단하죠??

 

실질적으로 마우스 우클릭 후 마우스의 이동값을 좌표값에 적용시켜주는 코드만 있습니다.

 

이렇게 작성된 스크립트를 gameobjact에 넣어주고 변수에 오브젝트를 연결해 주도록 하겠습니다!

 

카메라 스피드 변수는 원하는 숫자를 입력해서 카메라가 어느 속도록 움질일지에대해 정해주면 되겠습니다!! 저는 10을 주겠습니다.

카메라엔 오브젝트 안에 있었던 카메라를 지정해주면 됩니다!

이제 모든것이 연결 되었으니 잘 실행되나 확인 해봐야 겠죠??

 

잘 된걸 볼 수 있습니다!! 시원하게 움직이네요!!!

 

오늘 포스팅은 여기까지 하도록 하겠습니다!! 다들 즐거운 게임 만들었으면 좋겠습니다!!!

 

이포스팅은 스틱코드의 https://stickode.com/detail.html?no=2470 글을 참고했습니다~!

 

스틱코드

 

stickode.com