public class PlayerController : MonoBehaviour
{
Texture2D _attackIcon;
Texture2D _handIcon;
enum CursorType
{
None,
Hand,
Attack,
}
CursorType _cursorType = CursorType.None;
// 사전에 커서 텍스처를 로드한다.
void Start()
{
_attackIcon = Managers.Resource.Load<Texture2D>("Textures/Cursor/Attack");
_handIcon= Managers.Resource.Load<Texture2D>("Textures/Cursor/Hand");
}
void Update()
{
UpdateMouseCursor();
}
// 마우스가 어디위에 있는지에 따라 커서를 다른 텍스처로 세팅한다.
void UpdateMouseCursor()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100.0f, _mask))
{
if (hit.collider.gameObject.layer == (int)Define.Layer.Monster)
{
// 깜빡 거림 방지
if (_cursorType != CursorType.Attack)
{
Cursor.SetCursor(_attackIcon, new Vector2(_attackIcon.width / 5, 0), CursorMode.Auto);
_cursorType = CursorType.Attack;
}
}
else
{
if (_cursorType != CursorType.Hand)
{
Cursor.SetCursor(_handIcon, new Vector2(_handIcon.width / 3, 0), CursorMode.Auto);
_cursorType = CursorType.Hand;
}
}
}
}
}
커서 변경이 잘 이루어지는 것을 확인.