unity获取脚本组件_从Unity中的脚本中获取对按钮的引用

该脚本附加到不在场景中的预制件。该按钮有其标签。从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图像。所以,如果你问一个问题,你得到的答案不起作用,不要用非工作答案创建一个新问题。相反,在答案下留下评论。我相信这些人愿意帮助你更多地回答你的问题。如果你忽略它们然后在一个新问题中使用他们的代码,这意味着他们所做的代码解决了你的问题,而你现在又面临一个新的不同的问题。 –

你可能感兴趣的:(unity获取脚本组件)