Unity 的 C# 中的预期类

Posted

技术标签:

【中文标题】Unity 的 C# 中的预期类【英文标题】:Expected Class In C# for Unity 【发布时间】:2015-08-06 02:16:04 【问题描述】:

我在使用这个脚本时遇到了很多问题(我是 c# 新手)

using UnityEngine; 
public class Death : MonoBehaviour
public void Add() //right here I get a "expected class, Delegate, Enum, interface, or struct" error. 

if (isDead) 

    DeathCamTag.SetActive(true); 

else 

    FPSControllerTag.SetActive(true);   
 

如果我切换到:

using UnityEngine;
public class Death : MonoBehaviour //namespace dose not directly contain members such as methods
public void Add() //expected class

if (isDead) 

    DeathCamTag.SetActive(true); 

else 

    FPSControllerTag.SetActive(true);   
 
 //type or namespace def or end of file expected

谢谢

【问题讨论】:

问题是什么? 请先阅读标签说明,然后再将它们添加到您的问题unity != unity3d 这是基本的 C# 语法,您应该从几乎所有 C# 教程开始。简而言之,所有函数都必须存在于一个类内部。所以class 声明之后的那些花括号。 【参考方案1】:

应该是这样的

using UnityEngine;

namespace ClassLibrary1

    public class Death : MonoBehaviour
    
        public void Add() //right here I get a "expected class, Delegate, Enum, interface, or struct" error. 
        
            if (isDead)
            
                DeathCamTag.SetActive(true);
            
            else
            
                FPSControllerTag.SetActive(true);
            
        
    

【讨论】:

【参考方案2】:

您需要一个命名空间,但您缺少一堆 。试试:

using UnityEngine;

namespace GOTY2015 
    
    public class Death : MonoBehaviour
     
        public void Add() 
         
            if (isDead) 
            
                DeathCamTag.SetActive(true); 
            
            else 
            
                FPSControllerTag.SetActive(true);   
             
        
       

【讨论】:

从技术上讲,他并不需要 namespace(认为他还是最好使用它)。

以上是关于Unity 的 C# 中的预期类的主要内容,如果未能解决你的问题,请参考以下文章

[Unity] C#中级编程 - 02 - 静态

C# DataMember 序列化器排序与预期相反

如何获取存储在数组中的类中的值?

C# 中的命名空间常量

c# Unity - 如何在另一个类中调用结构对象数组

光线投射和二维阵列在 Unity 中的魔方无法按预期工作