개발일기
유니티#21 와 맛있다 PlayerInput, Physics Material 2D, Effect 본문
얘기해볼 것이 많다


패키지 매니저에서 Input System 패키지를 확인할 수 있다
내가 보기엔 애초에 기본적으로 설치되어있던 것 같긴한데 어쨋든 확인해보면 좋을 테고
만약 이 패키지가 있다면 오브젝트에 Player Input 컴포넌트를 추가해줄 수 있다
이 컴포넌트를 사용하는 것이 PlayerMovement.cs에서 직접 인풋을 받는 것 보다 나은 이유가 뭐냐면, PlayerMovement.cs에서 OnMove(InputValue value)나 OnJump() 등의 사기적인 함수들을 기본적으로 사용할 수 있기 때문이다
그 외에도 Behavior에 보이듯이, OnAttack이나 OnInteract 등의 함수들도 쓸 수 있다
본인이 Player 오브젝트를 좀 친다 그러면 이 패키지를 꼭 써보자
using UnityEngine;
using UnityEngine.InputSystem;
public class CatMovement : MonoBehaviour
{
[SerializeField] float moveSpeed;
[SerializeField] float jumpForce;
Vector2 moveInput;
Rigidbody2D catRigidBody;
Collider2D catCollider;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
Application.targetFrameRate = 60;
catRigidBody = GetComponent<Rigidbody2D>();
catCollider = GetComponent<Collider2D>();
}
// Update is called once per frame
void Update()
{
Run();
}
void OnMove(InputValue value)
{
moveInput = value.Get<Vector2>();
}
void OnJump()
{
if (!IsTouchingGround()) return;
catRigidBody.linearVelocityY = jumpForce;
}
void Run()
{
catRigidBody.linearVelocityX = moveInput.x * moveSpeed;
}
bool IsTouchingGround()
{
int groundLayer = LayerMask.GetMask("Ground");
return catCollider.IsTouchingLayers(groundLayer);
}
}
그 다음으로 알아볼 건 Physics Material 2D이다
사실 지금까지 만들어온 유니티 프로젝트들에는 큰 문제가 하나 있었다
Player고 금마리고 뭐고 전부 벽에 박으면 스파이더맨이 되어버린다는 것이다
바로 착 달라붙는 걸 보면 사실 이미 거미에게 물린지 좀 된 녀석들이다
이는 벽 오브젝트들과 플레이어 오브젝트가 부딪히면서 마찰력을 계산해서 그렇게 되는 것인데, 이를 해소해줄 방법이 바로 메테리얼Material을 사용하는 것이다
간단히 '재질'과 비슷한 용어라고 생각할 수 있다


이걸 활용하면 마찰력이나 탄성 계수 등을 직접 설정할 수 있어서 플레이어가 스파이더맨에 빙의하는 불의의 참사를 예방해줄 수 있다
찬양해 메테리얼!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

그 다음은 파티클이다
난 이게 Project에서 객체로 생성할 줄 알았는데 Hierarchy에서 만드는 거였더라
어쨋든 얘를 갖고 말 그대로 파티클 조절할 수 있다
이건 내가 까먹지 않는 용도로 써둔 거긴 하지만 유용할 수 있으니 관심 있으면 써보도록 하자
'Unity' 카테고리의 다른 글
| 유니티#22 잡다한 것들 (0) | 2025.05.22 |
|---|---|
| 유니티#20.5 총 (0) | 2025.05.03 |
| 유니티#20 인벤토리 UI, 클릭 핸들러 (0) | 2025.05.02 |
| 유니티#19 인벤토리, 퀵슬롯, 아이템 시스템 제작 (0) | 2025.04.30 |
| 유니티#18 Rigidbody2D 아이템 줍기 구현 (1) | 2025.04.29 |
