using UnityEngine;
public class BaseController : MonoBehaviour
{
protected Rigidbody2D _rigidbody;
[SerializeField] private SpriteRenderer characterRenderer;
[SerializeField] private Transform weaponPivot;
protected Vector2 movementDirection = Vector2.zero;
public Vector2 MovementDirection { get { return movementDirection; } }
protected Vector2 lookDirection = Vector2.zero;
public Vector2 LookDirection { get { return lookDirection; } }
private Vector2 knockback = Vector2.zero;
private float knockbackDuration = 0.0f;
protected virtual void Awake()
{
_rigidbody = GetComponent<Rigidbody2D>();
}
protected virtual void Start()
{
}
protected virtual void Update()
{
HandleAction();
}
protected virtual void FixedUpdate()
{
Movment(movementDirection);
if (knockbackDuration > 0.0f)
{
knockbackDuration -= Time.fixedDeltaTime;
}
}
protected virtual void HandleAction()
{
}
private void Movment(Vector2 direction)
{
direction = direction * 5;
if (knockbackDuration > 0.0f)
{
direction *= 0.2f;
direction += knockback;
}
_rigidbody.velocity = direction;
}
}
'Game Engine > Unity' 카테고리의 다른 글
[Unity] 트러블슈팅 (0) | 2025.02.20 |
---|---|
[Unity] 플레이어를 따라오는 카메라 구현 (0) | 2025.02.19 |
[Unity] Stack (0) | 2025.02.17 |
[Unity] Rigidbody (0) | 2025.02.14 |
[Unity] Unity 기본 (0) | 2025.02.14 |