개발/게임 교육

게임 교육 5 - 캐릭터 만들기

이게될까 2023. 12. 27. 17:12
728x90
728x90

캐릭터를 만드는 화면이다.

아래와 같은 선택으로 캐릭터를 만들 스퀘어를 만든다.

스퀘어에 캐릭터를 넣어준다.

아무런 기능없는 캐릭터가 형성되었다!

스크립트 파일 만들기

저번과 같이 캐릭터를 움직이기 위해 스크립트 C#파일을 만들어 캐릭터에 넣어준다.

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

public class PlayerCtrl : MonoBehaviour
{
    public float speed;

    private void Update()
    {
        //클릭했는지 판단.
        if (Input.GetMouseButton(0))
        {            // 좌클릭 누르고 있는 중 컴퓨터 모바일 다 해준다.
            Vector3 dir =(Input.mousePosition - new Vector3(Screen.width * 0.5f, Screen.height * 0.5f)).normalized; // 화면 정중앙을 빼서 얼마나 이동하는지를 노말 백터화 한다.
            
            transform.position += dir*speed * Time.deltaTime;

        }
    }
    
    // 캐릭터 움직임 관리
    void Move()
    {
        // 상하좌우를 터치하여 움직이기

    }
}

위와 같은 코드를 작성하여 캐릭터 움직임을 구현해준다.

캐릭터 스피드를 변경해준다.

0이면 움직이지 않으므로 3을 넣어준다.

잘 움직인다.

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

public class PlayerCtrl : MonoBehaviour
{
    public float speed;

    private void Start()
    {
        Camera.main.transform.parent = transform; //캐릭터 이탈 방지
        Camera.main.transform.localPosition = new Vector3(0, 0, -10);
    }
    private void Update()
    {
        Move();
    }
    
    // 캐릭터 움직임 관리
    void Move()
    {
        // 상하좌우를 터치하여 움직이기

        //클릭했는지 판단.
        if (Input.GetMouseButton(0))
        {            // 좌클릭 누르고 있는 중 컴퓨터 모바일 다 해준다.
            Vector3 dir = (Input.mousePosition - new Vector3(Screen.width * 0.5f, Screen.height * 0.5f)).normalized; // 화면 정중앙을 빼서 얼마나 이동하는지를 노말 백터화 한다.

            transform.position += dir * speed * Time.deltaTime;

        }
    }
}

캐릭터가 화면 밖으로 나가는 것을 막기 위해서 카메라가 캐릭터를 따라오게 만들었다.

캐릭터가 화면 중앙에 위치하고 있다.

728x90