該腳本附加到不在場景中的預製件。該按鈕有其標籤。從Unity中的腳本中獲取對按鈕的引用
我試着拖放檢查器中的按鈕,但引擎不會讓我。我試圖通過標籤找到它,但我得到一個異常「不能隱式地將類型UnityEngine.GameObject轉換爲UnityEngine.UI.Button」,當我投射時,我得到一個異常,我無法通過內置轉換轉換這些類型。 有些幫助? 如何獲得對按鈕的引用? 下面是代碼:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TankShooting : MonoBehaviour {
private Transform ShootingCameraTransform;
private PlayerTankMovement playerTankMovement;
public Button shootButton;
// Use this for initialization
void Start() {
shootButton = GameObject.FindGameObjectWithTag ("ShootButton") as Button;
shootButton.onClick.AddListener ((UnityEngine.Events.UnityAction)this.OnShootButtonClick);
playerTankMovement = GetComponent<PlayerTankMovement>();
Transform t = transform;
foreach (Transform tr in t)
{
if (tr.tag == "ShootingCamera")
{
ShootingCameraTransform = tr.transform;
}
}
}
// Update is called once per frame
void Update() {
}
public void OnShootButtonClick()
{
Debug.Log ("Success");
}
}
嗨更換
,因爲你用[這裏](http://stackoverflow.com/a/ 39617471/3785314)解決方案,爲什麼不接受它作爲答案? – Programmer
我不確定它是否有效。我有一個引用按鈕的問題。如果它有效,我會接受它。這是左邊的複選標記?你能幫助參考按鈕嗎? – Rango
是的,複選標記不是upvote或downvote圖像。所以,如果你問一個問題,你得到的答案不起作用,不要用非工作答案創建一個新問題。相反,在答案下留下評論。我相信這些人願意幫助你更多地回答你的問題。如果你忽略它們然後在一個新問題中使用他們的代碼,這意味着他們所做的代碼解決了你的問題,而你現在又面臨一個新的不同的問題。 – Programmer