: 오브젝트에 물리를 적용하고 중력을 받을 수 있도록 함
: 오브젝트의 충돌 범위를 나타내는 컴포넌트
두 오브젝트가 충돌하기 위한 필수 조건
1. 두 오브젝트 모두 충돌 범위인 Collider2D 컴포넌트를 가지고 있어야함
2. 둘 중 하나 이상의 오브젝트가 물리 처리를 담당하는 Rigidbody2D 컴포넌트를 가지고 있어야함
Rigidbody2D
물리적인 충돌 & 이벤트 함수 호출
OnCollisionEnter2D : 두 오브젝트가 충돌하는 순간 1회 호출
OnCollisionStay2D : 충돌 직후 맞닿아 있는 동안 매 프레임 호출
OnCollisionExit2D : 두 오브젝트가 떨어져서 충돌이 종료되는 순간 1회 호출
물리적 충돌 x & 이벤트 함수만 호출
⇒ 충돌없이 지나쳐감
OnTriggerEnter2D : 두 오브젝트가 충돌하는 순간 1회 호출
OnTriggerStay2D : 충돌 직후 맞닿아 있는 동안 매 프레임 호출
OnTriggerExit2D : 두 오브젝트가 떨어져서 출돌이 종료되는 순간 1회 호출
Instantiate()
: original 게임오브젝트(프리탭)를 복제해서 생성
+ 프리탭 : 오브젝트를 복제 생성하기 위해선 원본이 되는 오브젝트
public class PlayerController : MonoBehaviour
{
[SerializeField]
private KeyCode keyCodeFire = KeyCode.Space;
[SerializeField]
private GameObject bullePrefab;
private float moveSpeed = 3.0f;
private Vector3 lastMoveDirection = Vector3.right;
void Update()
{
// 플레이어 오브젝트 이동
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
transform.position += new Vector3(x, y, 0) * moveSpeed * Time.deltaTime;
// 마지막에 입력된 방향키의 방향으로 총알의 발사 방향으로 활용
if (x != 0 || y != 0)
{
lastMoveDirection = new Vector3 (x, y, 0);
}
// 플레이어 오브젝트 총알 발사
if (Input.GetKeyDown(keyCodeFire))
{
GameObject clone = Instantiate(bullePrefab, transform.position, Quaternion.identity);
clone.name = "Bullet";
clone.transform.localScale = Vector3.one * 0.5f;
clone.GetComponent<SpriteRenderer>().color = Color.red;
clone.GetComponent<Movement2D>().Setup(lastMoveDirection);
}
}
}
+ 키보드 Key
출처 : 고박사, inflearn, 따라하면서 배우는 고박사의 유니티 기초(2D)
Corner Unity
Editor: Luna
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor: Hetbahn) (1) | 2024.10.11 |
---|---|
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor: Borybop) (1) | 2024.10.11 |
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor: 동동) (1) | 2024.10.11 |
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor : Ijin) (1) | 2024.10.11 |
[유니티 소소모임] 2주차. 유니티 에디터 배우기 1 (Editor: 니나노) (0) | 2024.10.11 |