OnKeyPress_Move

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

public class OnPressKey_Move : MonoBehaviour
{
    // 전역변수
    float vx = 0;      // x축으로 이동하는 이동량
    float vy = 0;      // y축으로 이동하는 이동량
    bool flag = false; // 반전여부(true/false)


    void Update() // 계속 시행한다(비정기적인 간격으로)
    {
        vx = 0;
        vy = 0;
        if (Input.GetKey("right")) // 키보드 키 눌렸다면, Input.Getkey(KeyCode.RightArrow)
        {
            vx = 5;
            flag = false;
        }
        if (Input.GetKey("left")) // 키보드 키 눌렸다면, Input.Getkey(KeyCode.LeftArrow)
        {
            vx = -5;
            flag = true;
        }
        if (Input.GetKey("up")) // 키보드 키 눌렸다면, Input.Getkey(KeyCode.UpArrow)
        {
            vy = 5;
        }
        if (Input.GetKey("down")) // 키보드 키 눌렸다면, Input.Getkey(KeyCode.DownArrow)
        {
            vy = -5;
        }
    }

    void FixedUpdate() // 계속 시행한다(일정한 간격으로, 50프레임)
    {
        // 방향키대로 이동한다.
        transform.Translate(vx/50, vy/50, 0);
        GetComponent<SpriteRenderer>().flipX = flag;
    }
}

OnKeyPress_MoveRigid

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

public class OnKeyPress_MoveRigid : MonoBehaviour
{
    float vx = 0;    // x축 방향으로 이동하는 이동량
    float vy = 0;    // y축 방향으로 이동하는 이동량
    public float speed = 5.0f;
    bool flag = false;   // 반전여부


    Rigidbody2D rb; // 클래스명 객체명(=변수명), 리지드바디형 변수(rb)선언


    void Start()    // 유니티를 처음 실행할 때 한번만 호출(실행된다), 초기화할 때 많이 사용
    {
        rb = GetComponent<Rigidbody2D>(); //리지드바디 컴포넌트 가져오기
        // 중력을 0으로하고, 충돌했을 때 회전시키지 않기
        rb.gravityScale = 0;
        rb.constraints = RigidbodyConstraints2D.FreezeRotation; // Z 클릭
    }
    void Update()   // 계속 실행한다.(반복해서 호출, 비주기적, 60fps)
    {
        vx = 0;     // x축으로 이동하는 양(vx)
        vy = 0;     // y축으로 이동하는 양(vy)

        if (Input.GetKey("right"))  //만약 오른쪽 방향키가 눌리면
        {
            vx = speed;   // 오른쪽으로 나아가는 이동량   
            flag = false;   // 반전안함    
        }
        if (Input.GetKey("left"))  //만약 왼쪽 방향키가 눌리면
        {
            vx = -speed;   // 왼쪽으로 나아가는 이동량      
            flag = true;    // 반전함
        }
        if (Input.GetKey("up"))  //만약 위쪽 방향키가 눌리면
        {
            vy = speed;   // 위쪽으로 나아가는 이동량       
        }
        if (Input.GetKey("down"))  //만약 아래쪽 방향키가 눌리면
        {
            vy = -speed;   // 아래쪽으로 나아가는 이동량       
        }
    }

    void FixedUpdate()
    {
        rb.velocity = new Vector2(vx,vy);   //이동
        GetComponent<SpriteRenderer>().flipX = flag;
    }
}

Move_Velo

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

public class Move_Velo : MonoBehaviour
{
    Rigidbody2D rb;
    float axisH = 0;    //수평방향(좌우) 속도값

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        axisH=Input.GetAxisRaw("Horizontal");
    }

    private void FixedUpdate()
    {
        rb.velocity = new Vector2(axisH * 5.0f, rb.velocity.y); //이동
        GetComponent<SpriteRenderer>().flipX = (axisH<0);
        
    }
}

Move_Addforce

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

public class Move_Addforce : MonoBehaviour
{
    // AddForce 메서드의 사용

    Rigidbody2D rb;     //리지드바디형 변수선언

    public float power = 5;
    bool flag = false;  // 반전 여부

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        if(Input.GetKeyDown("right"))
        {
            rb.AddForce(Vector2.right*power,ForceMode2D.Impulse);
        }
        if (Input.GetKeyDown("left"))
        {
            rb.AddForce(Vector2.left * power, ForceMode2D.Impulse);
        }
    }

    void FixedUpdate()
    {
        
    }
}

 

'----------고1---------- > 게임엔진' 카테고리의 다른 글

[고1 게임엔진] 09 - (3)  (0) 2023.09.13
[고1 게임엔진] 09 - (2)  (3) 2023.09.11
[고1 게임엔진] 09 - (1)  (0) 2023.09.04
[고1 게임엔진] 08 - (3)  (0) 2023.08.30
[고1 게임엔진] 08 - (2)  (0) 2023.08.28