unity怎么设置脚本当运行项目时,场景中的cube放大一倍,位置像y轴正向移动一个?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity怎么设置脚本当运行项目时,场景中的cube放大一倍,位置像y轴正向移动一个?相关的知识,希望对你有一定的参考价值。
参考技术A public GameObject cube=你要放大的cube;void Start()
cube.transform.localScale*=2;
cube.transform.position += gameObject.transform.up;
那个 你要放大的cube 你是通过代码去找 还是 手拖上去 随便 反正找到了就行
从 Unity 中的脚本中获取对按钮的引用
【中文标题】从 Unity 中的脚本中获取对按钮的引用【英文标题】:Get a reference to a button from script in Unity 【发布时间】:2016-09-22 07:44:02 【问题描述】:脚本附加到不在场景中的预制件上。该按钮有它的标签。
我尝试在检查器中拖放按钮,但引擎不允许。我尝试通过标签找到它,但我得到一个异常“无法将 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");
【问题讨论】:
您好,既然您使用了this 解决方案,为什么不接受它作为答案? 我不确定它是否有效。我在引用按钮时遇到问题。如果它有效,我会接受它。是左边右边那个勾号吗?你能帮忙引用按钮吗? 是的,复选标记不是赞成或反对的图像。因此,如果您提出问题并且您得到的答案不起作用,请不要使用无效的答案创建新答案。相反,请在答案下方留下评论。我相信那些人愿意帮助你更多地回答你的问题。如果您忽略它们,然后在新问题中使用它们的代码,则意味着它们编写的代码解决了您的问题,而您现在遇到了新的不同问题。 感谢您的建议。我以后会用它 好的,那你有什么问题? 【参考方案1】:看你的代码,还有一个问题:
shootButton = GameObject.FindGameObjectWithTag ("ShootButton") as Button;
您不能像这样将 Component(Button
) 转换为 GameObject。您必须使用 GetComponent
从 GameObject 中获取 Button
组件。
我无法在检查器中拖放按钮,当我找到它时 通过标签我不能将它从 GameObject 转换为 Button
那是因为你拖到 shootButton 槽的 GameObject 不是 Button 或者没有附加 Button 组件。它必须具有 Button 组件,您才能将其拖到 Button
(shootButton ) 插槽。
您必须创建一个 Button,然后将该 Button 拖到 shootButton
插槽。
您可以先移除
shootButton = GameObject.FindGameObjectWithTag ("ShootButton") as Button;
shootButton.onClick.AddListener ((UnityEngine.Events.UnityAction)this.OnShootButtonClick);
然后将Button
拖到shootButton
插槽:
或
从脚本中获取参考:
如果您想从脚本中执行此操作,请替换
shootButton = GameObject.FindGameObjectWithTag ("ShootButton") as Button;
shootButton.onClick.AddListener ((UnityEngine.Events.UnityAction)this.OnShootButtonClick);
与
shootButton = GameObject.FindGameObjectWithTag("ShootButton").GetComponent<Button>();
shootButton.onClick.AddListener(() => OnShootButtonClick());
【讨论】:
我已经附加了按钮组件,但它仍然无法正常工作 你做错了什么。如果您仍然无法将其拖动到插槽中,请发布您拖动位置的屏幕截图。再张贴您拖入插槽的 GameObject 的屏幕截图,并向我们展示附加了哪些组件。另外,除非您的问题得到解决,否则不要接受答案。 问题已解决 我使用了 shootButton = GameObject.FindGameObjectWithTag("ShootButton").GetComponent 您无法通过引用转换将类型“UnityEngine.GameObject”转换为“UnityEngine.UI.Button”。以上是关于unity怎么设置脚本当运行项目时,场景中的cube放大一倍,位置像y轴正向移动一个?的主要内容,如果未能解决你的问题,请参考以下文章