2016-06-20 4 views
0

커서를 단추로 가리키면 커서 아이콘을 변경해야하는 게임을 개발 중이며 단추를 가리 키지 않으면 정상 상태로 돌아갑니다. 지금까지 나는이 일을했지만 좋은 점이 전혀 없습니다. 내가 버튼에서이 스크립트를 부착하고 ...커서를 마우스로 가리킬 때 커서 아이콘 변경

using UnityEngine; 
using System.Collections; 

public class cursor : MonoBehaviour { 

    Vector2 mouse; 
    int w =32; 
    int h=32; 
    public Texture2D cursor1; 
    // Use this for initialization 
    void Start() { 
    Cursor.visible = true; 
    } 

    // Update is called once per frame 
    void Update() { 
    mouse = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y); 
    } 
    void OnMouseOver() 
    { 
    Cursor.SetCursor (cursor1, Vector2.zero, CursorMode.Auto); 
    } 
    void OnMouseExit() 
    { 
    Cursor.SetCursor (null,Vector2.zero,CursorMode.Auto); 
    } 
} 

답변

2

UI 시스템의 이벤트 트리거를 사용하여 시스템 또는 입력 기반 상호 작용의 아이콘을 변경해야합니다 (이는 구현하기 쉬운 방법입니다).

첫 번째 마우스 오버 및 마우스 나가기 기능을 공개로 변경하십시오. 당신이 커서 추가 으로 가져가에 변경하려는 버튼에 이벤트 시스템을 추가 컴포넌트 -> 이벤트 트리거 -> 새 이벤트 유형을 추가 -이 선택할 수있는 여러 이벤트가 있지만 여기>

만 필요 포인터에 입력하고 포인터 종료

그래서 당신의 포인터 이 & 포인터 종료 입력 선택 -> '+'기호를 클릭하십시오를 -> 드래그 앤 커서를 놓습니다 두 곳의 스크립트를 실행하고 스크립트에서 각각의 기능을 선택하고 프로그램을 실행하십시오.

enter image description here

또 다른 방법은 커서 스크립트의 이벤트 시스템 기능을 구현하고 버튼 객체에 배치하는 것입니다하지만 난 첫 번째 방법을 수행하는 깨끗하고 쉽게 구현할 생각합니다. Event Trigger Scripted Implementation 1

참고 : 버튼 UI 공간에있는 것처럼 커서 스크립트 버튼을 작동하지 않는 이유는 귀하의 낡은 마우스가 이상하지 UI 등 colliders을 가지고 3 차원 세계에있는 객체에서 작동합니다. 3D/2D 콜리 더를 사용하여 UI에서도 작업 할 수 있지만 구현할 길이 긴 방법 인 레이 캐스터를 사용해야합니다.

이 방법으로 문제가 해결

Event Trigger Info

희망

을 요구하지 않는 한 나는 오히려 간단한 것들로 갈 것입니다.

-1

유니티 문서에이 링크를 확인하셨습니까 필요 같은

https://docs.unity3d.com/ScriptReference/Cursor.SetCursor.html

당신이 관리자의 질감을 구성 했을?

커서에 사용할 텍스처 또는 null을 사용하여 기본 커서를 설정합니다. 을 커서로 사용하기 위해 텍스처 가져 오기 도구 (또는 "커서"기본값 사용)의 에 "읽기/쓰기 가능"으로 텍스처를 가져와야합니다.