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 |