2017-07-13 6 views
0

こんにちは私はユニティに新しく、マウスが上に来たときにUIイメージのソースイメージを変更しようとしています。マウスがボタンの上になくなっても、ボタンのソースイメージは元に戻ります正常に。私はスプライトがボタンのソースイメージである必要があることを知っているので、2つのイメージスプライトファイルを作成しました(通常のイメージとボタンの上にマウスを置いたときのライトアップイメージ)。 マウスボタンの上にあるときにUIボタンのソースイメージを変更しますか? (ユニティー)

マウスが

enter image description here

の上になったときに再生ボタンのスクリーンショットが点灯することによって、その元画像を変更します、通常のソース画像

enter image description here

ボタンを持っていますC#でこのタスクを実行するにはどうすればよいですか?マウスの上にカーソルを置くと、C#のボタンのソースイメージをどのように変更できますか?

これは、これまで私がいくつかの参考文献を見てから得たものです。私はonPointerHoverのようなものはありません

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.UI; 

public class PlayButton : MonoBehaviour { 

    private PlayButton pb; 
    private Sprite newSprite; 

    // Use this for initialization 
    void Start() { 
     pb = GetComponentInChildren<PlayButton>(); 
    } 

    // Update is called once per frame 
    void Update() { 

    } 

    public void onClick(){ 

    } 

    public void onPointerHover(PointerEventData eventData){ 
     //When mouse hovers over the button, the button changes 
     pb.image.overrideSprite = newSprite; 
    } 
} 
+0

ボタンのデフォルトの動作は、強調表示されているときに既に明るくなります。 – Lestat

答えて

2

知識の私の不足のためのUnityへの新しいごめんなさい。マウスの使用を検出するにはOnPointerEnter。マウスがマウスの上にあるときを検出するには、OnPointerExitを使用します。これらの機能を使用するには、IPointerExitHandlerIPointerEnterHandlerを実装する必要があります。

さらに多くの例をお読みくださいhere

ボタンのソースイメージを変更するには、Button.image.spriteまたはButton.image.overrideSpriteを使用します。

using UnityEngine; 
using UnityEngine.UI; 
using UnityEngine.EventSystems; 

public class PlayButton : MonoBehaviour, IPointerExitHandler, IPointerEnterHandler 
{ 
    private Button pb; 
    public Sprite newSprite; 

    void Start() 
    { 
     pb = GetComponent<Button>(); 
    } 

    public void OnPointerEnter(PointerEventData eventData) 
    { 
     pb.image.sprite = newSprite; ; 
     Debug.Log("Mouse Enter"); 
    } 

    public void OnPointerExit(PointerEventData eventData) 
    { 
     Debug.Log("Mouse Exit"); 
     //Change Image back to default? 
    } 
} 

EDIT:あなたはこの自分を行う必要はありません

はちょうどこのボタンオブジェクトを添付します。 Unityはそれを行うための方法で構築されています。

.Change "スプライト・スワップ"から"色味" からボタンの移行オプション。

.Change "強調表示スプライト" 今まであなたが望むスプライトにスロット。

enter image description here

+1

私はその存在を知らなかった。それは働いた、ありがとう! –

関連する問題