2016-11-14 125 views
0

OP想通了,失蹤了EventSystem對象Unity 2D - 爲什麼按鈕不起作用?

我通過團結做出了運行遊戲。但是我遇到了一個很大的問題。我做了一個按鈕跳轉並添加onclick事件,但是,它不起作用。我的亞軍不會在地面上跳躍。請幫幫我!

enter image description here

鍵和鍵督察。

enter image description here

亞軍督察。

enter image description here

的OnClick督察。

,這是一個亞軍的C#腳本:

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

    public class CsRunner : MonoBehaviour 
    { 
     public Vector2 jumpVelocity; 
     public Text _coin; 
     int coinCount = 0, heartCount, healthCount = 0, grimReaperCount = 0, coupleCount = 0; 
     bool isJump; 
     public Button _jump; 

     bool collision_box; 

     // Use this for initialization 
     void Start() 
     { 
      _jump.onClick.AddListener(Jump); 
      heartCount = 3; 
     } 

     // Update is called once per frame 
     void Update() 
     { 
      _coin.text = ""+coinCount; 
     } 

     void OnTriggerEnter2D(Collider2D coll) 
     { 
      if (coll.transform.tag == "Enemy") 
      { 
       if (heartCount > 1) 
        Destroy(GameObject.Find("heart ("+(heartCount-1)+")")); 

       else if (heartCount == 1) 
        Destroy(GameObject.Find("heart")); 

       heartCount--; 
      } 

      if (coll.transform.tag == "HealthBuff") 
      { 
       Destroy(coll.gameObject); 
       healthCount++; 
      } 

      if (coll.transform.tag == "GrimReaperBuff") 
      { 
       Destroy(coll.gameObject); 
       grimReaperCount++; 
      } 

      if (coll.transform.tag == "CoupleBuff") 
      { 
       Destroy(coll.gameObject); 
       coupleCount++; 
      } 

      if (coll.transform.tag == "FieldCoin") 
      { 
       Destroy(coll.gameObject); 
       coinCount++; 
      } 
     } 


     void OnCollisionEnter2D(Collision2D coll) 
     { 
      if (coll.transform.tag == "Ground") 
      { 
       GetComponent<Animator>().enabled = true; 
       collision_box = true; 
       isJump = false; 
      } 
     } 

     void OnCollisionStay2D(Collision2D coll) 
     { 
      if (coll.transform.tag == "Ground") 
      { 
       GetComponent<Animator>().enabled = true; 
       collision_box = true; 
       isJump = false; 
      } 
     } 

     void OnCollisionExit2D(Collision2D coll) 
     { 
      if (coll.transform.tag == "Ground") 
      { 
       GetComponent<Animator>().enabled = false; 
       collision_box = false; 
       isJump = true; 
      } 
     } 

     public void Jump() 
     { 
      Debug.Log("JUMP!!"); 

      if (isJump) 
      { 
       isJump = false; 
       transform.GetComponent<Rigidbody2D>().AddForce(jumpVelocity/2, ForceMode2D.Impulse); 
      } 

      if (collision_box) 
      { 
       isJump = true; 
       transform.GetComponent<Rigidbody2D>().AddForce(jumpVelocity, ForceMode2D.Impulse); 
      } 

      else 
      { 
       GetComponent<Animator>().SetTrigger("Run"); 
      } 
     } 
    } 

謝謝!

+0

「但是,它不工作」 - **什麼**不工作? – Hellium

+0

@Hellium我猜這個函數沒有被觸發。 –

+0

你能告訴我們OnClick部分嗎? –

回答

1

我解決了這個問題!畫布對象沒有EventSystem!謝謝大家:)

+0

所以請將您的問題標記爲已回答或接受您的回答 – swe

+1

@swe發佈答案後,她無法回覆48小時。 –

+0

好吧,謝莉,我不知道 – swe

相關問題