Unity3D_MMO - 마우스 커서

k_hyun·2022년 10월 18일
0

Unity_MMO_Project

목록 보기
23/33

PlayerController.cs

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;
                }
            }
        }

    }

}

실행 결과


커서 변경이 잘 이루어지는 것을 확인.

0개의 댓글