该脚本附加到不在场景中的预制件。该按钮有其标签。从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();
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");
}
}
2016-09-22
Rango
+0
嗨更换 shootButton = GameObject.FindGameObjectWithTag ("ShootButton") as Button; shootButton.onClick.AddListener ((UnityEngine.Events.UnityAction)this.OnShootButtonClick);
,因为你用[这里](http://stackoverflow.com/a/ 39617471/3785314)解决方案,为什么不接受它作为答案? –
+0
我不确定它是否有效。我有一个引用按钮的问题。如果它有效,我会接受它。这是左边的复选标记?你能帮助参考按钮吗? –
+0
是的,复选标记不是upvote或downvote图像。所以,如果你问一个问题,你得到的答案不起作用,不要用非工作答案创建一个新问题。相反,在答案下留下评论。我相信这些人愿意帮助你更多地回答你的问题。如果你忽略它们然后在一个新问题中使用他们的代码,这意味着他们所做的代码解决了你的问题,而你现在又面临一个新的不同的问题。 –