2015-10-23 181 views
0

我有一個精靈,充當我遊戲主菜單中的按鈕。它有一個箱子對撞機,我用OnMouseDown()來註冊按鈕的點擊。在mouseover上更改精靈

我想讓鼠標在按鈕上滾動時發生變化。我知道我可以使用功能OnMouseOver()做些什麼,但是如何完全切換2個精靈?

回答

2

你並不需要使用2個精靈和在它們之間切換。只需使用這樣的效果

void OnMouseOver 
{ 
    transform.GetComponent<SpriteRenderer>().sprite.color = "your new color for clicking effect"; 

    transform.GetComponent<SpriteRenderer>().sprite.localScale -= new Vector3(0.1f, 0.1f, 0.1f); 
} 

並返回OnMouseExit中的所有這些過程。或者如果你仍然想改變精靈,你可以改變它像

Sprite newSprite; 

void OnMouseOver 
{ 
    transform.GetComponent<SpriteRenderer>().sprite = newSprite; 
} 

並改變回OnMouseExit。

+1

這很好。然而,如果你有一個藍色的精靈,你說,Photoshop中創建? 'sprite.color'會不會改變精靈的顏色? – Tom

+1

它會改變,但是當您將顏色設置爲紅色時,它會變成藍色+紅色,我認爲。沒有變成你設定的顏色。 – Cenkisabi

1

把鼠標功能集成到一個空父GameObject和父它所有你想要的,那麼就啓用/通過父禁用它們

1

其他選項的精靈:

  • 使用世界空間UI按鈕代替(然後你可以使用內置的spriteswap過渡和其他按鈕方法:http://docs.unity3d.com/Manual/script-SelectableTransition.html
  • 添加公共雪碧變量和分配的鼠標懸停精靈,然後在OnMouseOver()使用該精靈圖像在你的按鈕精靈。 (並恢復到原來的精靈鼠標出)
  • 也可以使用Mecanim動畫的onmouseover()切換到另一個動畫(其中只有1幀)