게임 개발

[유니티 강좌] 6.움직이자!

알 수 없는 사용자 2022. 3. 17. 17:46
728x90
반응형

오늘은 드디어 움직여 볼건데요,

 

저번에 설명할때 쓰였던 Move 스크립트로 들어가 줍니다.

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

public class Move : MonoBehaviour
{
    Rigidbody2D rigid;
    public float Movesp;

    Vector3 moove;
    // Start is called before the first frame update
    void Start()
    {
        rigid = gameObject.GetComponent<Rigidbody2D> ();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        PMove();
    }
    
    void PMove()
    {
         
        Vector3 movevelocity = Vector3.zero;

        if (Input.GetAxisRaw("Horizontal") < 0)
        {
            movevelocity = Vector3.left;
        }
        else if (Input.GetAxisRaw("Horizontal") > 0)
        {
            movevelocity = Vector3.right;
        }
        transform.position += movevelocity * Movesp * 4f *Time.deltaTime;
    }
}

예.... 길죠? 이렇게 써주심 됩니다. 이걸 복붙 해도 상관은 없습니다만 여러분의 실력을 늘릴려면 혼자 입력해 보면서 알아가는 것도 중요하다고 생각합니다. 설명을 좀 해보자면, Input.GetAxisRaw("Horizontal") 은 유니티 자체 내장 기능입니다. A와 D 를 비교해서 수평 이동이죠. 그래서 Horizontal 입니다. A가 눌리면 Horizontal은 음수가 되고, D 가 눌리면 양수가 됩니다. 이 값을 비교하여 벡터를 이용하면 수직 이동을 쉽게 할수 있죠.

이제 유니티로 돌아와서 스크립트를 끌어서 "예시"(빨간공)에 넣어줍니다.

근데 실행시켜보면 작동이 안됩니다. 왜 그럴까요? 일단 저희가 사용한 Movesp 가 0으로 설정되있기 때문이죠. 우리의 "예시"

오브젝트를 누르면 인스펙터 창에 여러가지가 뜨는데 밑으로 내리면 Move(Script)라고 써져있는 컴포넌트에 자세히 보시면 Movesp [0] (캡처도구가 고장나서ㅠㅠㅠ)가 있습니다. 이걸 50 정도로 바꿔주고 실행을 눌러주면 안됩니다. 리지드 바디가 없군요.... 다음시간엔? 맞습니다. 리지드 바디에 대해 써보겠습니다.