【问题标题】:unity 5 c# enable disable gameobject scriptunity 5 c# 启用禁用游戏对象脚本
【发布时间】:2018-02-15 05:23:47
【问题描述】:

嗨,我在 c# 中进行了新的编码,我正在编写一个脚本来启用/禁用 Unity 5 游戏对象,点击另一个对象进行这两个操作,第一部分运行正常,但在第二部分中重新启用对象显示此错误:

Assets/Script/Activar.cs(11,5):错误 CS1519:意外符号“else” 在类、结构或接口成员声明中

这是脚本:

using System.Collections;
using UnityEngine;

public class Activar : MonoBehaviour {
	public GameObject modify;

	void Update () {
		if (Input.GetMouseButton (0))
			modify.SetActive (false);
	}
	        else {
			modify.SetActive (true);
		}
	}
	

那么我能做些什么来解决这个问题呢? 谢谢:)

【问题讨论】:

  • 您需要在if (Input.GetMouseButton (0)) 之后添加{,因为在if 语句中的代码之后有}。您还需要添加另一个 } 添加结尾,因为在声明类后您有 { 但没有关闭对。
  • void Update () { modify.SetActive (!Input.GetMouseButton (0)); }

标签: c# if-statement unity3d unity5 gameobject


【解决方案1】:

modify.SetActive (false); 行之后的括号是更新函数的结束括号。所以你的 else 语句在 Update 函数之外。

if (Input.GetMouseButton (0))
            modify.SetActive (false);

这是一个封闭的 if 语句。

应该是这样的

using System.Collections;
using UnityEngine;

    public class Activar : MonoBehaviour {
        public GameObject modify;

        void Update () {
            if (Input.GetMouseButton (0))
                modify.SetActive (false);
            else 
                modify.SetActive (true);
        }
    }

【讨论】:

  • 好的,错误现在消失了,但我的主要想法是通过单击另一个对象(如按钮)使对象消失,然后再次单击同一个按钮重新出现。现在这个脚本立即消失并重新出现,我该如何解决这个问题?再次感谢:P
  • 您必须在场景中添加一个按钮。当您通过选择 GameObject->UI ->Button 将按钮添加到场景时,Unity 将添加其他必要的对象。在 Inspector 窗口中,该对象有一个按钮组件,该组件具有一个 OnClick 事件列表。您只需单击组件下方的加号按钮并选择您的“Activar”脚本。然后从该脚本中选择当您单击鼠标按钮时将运行的函数。您的函数将不是更新函数,它将是简单调用“modify.SetActive (state);”的公共 void 函数功能。
  • 非常感谢大家!!!我用你的建议解决了这个问题,这行改变了一切: if (Input.GetMouseButton (0)) modify.SetActive (!modify.activeInHierarchy);
【解决方案2】:
Input.GetMouseButtonDown(0);

我相信这是对鼠标左键的正确调用。也许这就是您的代码不起作用的原因?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2017-09-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多