2016-08-30 119 views
0

我有圖像w /按鈕組件。我正在創建類似庫存的內容,並且我需要將它顯示爲單擊時單擊「紙張」,然後再次單擊時顯示爲「下單」。點擊然後上去,再次點擊,然後下去

這裏是可以自動執行的代碼,我可以手動執行它。請幫忙。

using UnityEngine; 
using System.Collections; 

public class BMM : MonoBehaviour { 
    public Vector3 pointB; 

    IEnumerator Start() 
    { 
     var pointA = transform.position; 

      yield return StartCoroutine(MoveObject(transform, pointA, pointB, 3.0f)); 
      yield return StartCoroutine(MoveObject(transform, pointB, pointA, 3.0f)); 

    } 

    IEnumerator MoveObject(Transform thisTransform, Vector3 startPos, Vector3 endPos, float time) 
    { 
     var i = 0.0f; 
     var rate = 1.0f/time; 
     while (i < 1.0f) 
     { 
      i += Time.deltaTime * rate; 
      thisTransform.position = Vector3.Lerp(startPos, endPos, i); 
      yield return null; 
     } 
    } 
} 
+0

使用這個:http://wiki.unity3d.com/index.php?title=MoveObject –

回答

1

我不知道我明白你在做什麼。如果我理解正確,您需要某種開關按鈕,一個開關按鈕在點擊(開啓)時上升,再次點擊(關閉)時開始下降。如果這是你正在嘗試做的,我建議是這樣的:

public class BMM : MonoBehaviour, IPointerClickHandler 
{ 
    public Vector3 pointB; 
    private Vector3 pointA; 

    private bool isClicked; 

    void Start() 
    { 
     pointA = transform.position; 
     isClicked= false; 
    } 

    public void OnPointerClick (PointerEventData eventData) 
    { 
     if (isClicked == false) 
     { 
      isClicked = true; 
      yield return StartCoroutine(MoveObject(transform, pointA, pointB, 3.0f)); 
     } 
     else 
     { 
      isClicked = false; 
      yield return StartCoroutine(MoveObject(transform, pointB, pointA, 3.0f)); 
     } 
    } 

    IEnumerator MoveObject(Transform thisTransform, Vector3 startPos, Vector3 endPos, float time) 
    { 
     var i = 0.0f; 
     var rate = 1.0f/time; 
     while (i < 1.0f) 
     { 
      i += Time.deltaTime * rate; 
      thisTransform.position = Vector3.Lerp(startPos, endPos, i); 
      yield return null; 
     } 
    } 
} 

注意,IPointerClickHandler接口只能是因爲你的對象附加了一個Button組件。如果您刪除了Button組件,它將不起作用。

此外,一旦您在類的頂部鍵入IPointerClickHandler,您可以右鍵單擊界面名稱並選擇選項Implicit Implement(或類似的東西),它會爲您創建方法OnPointerClick。

相關問題