Assets\Footsteps.cs(5,20):错误 CS0116:命名空间不能直接包含字段或方法等成员 [重复]
Posted
技术标签:
【中文标题】Assets\\Footsteps.cs(5,20):错误 CS0116:命名空间不能直接包含字段或方法等成员 [重复]【英文标题】:Assets\Footsteps.cs(5,20): error CS0116: A namespace cannot directly contain members such as fields or methods [duplicate]Assets\Footsteps.cs(5,20):错误 CS0116:命名空间不能直接包含字段或方法等成员 [重复] 【发布时间】:2021-01-17 09:19:12 【问题描述】:就我在为 Unity 创建足迹脚本时遇到的问题寻求帮助。 我从一些关于如何设置脚步声的手册/指南中粘贴了这段代码(在 C# 中),但是当我保存它并返回 Unity 时,会发生错误,如下所示:
Assets\Footsteps.cs(5,20):错误 CS0116:命名空间不能直接包含字段或方法等成员
我正在使用 Unity 2019.4.17f1。 我正在使用 Microsoft Visual Studio Code 2019。 代码来自https://coding.degree/unity-audio-tutorial/#Footstep_Sounds代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public AudioClip[] footstepClips;
public Audiosource audioSource;
public float footstepThreshold;
public float footstepRate;
private float lastFootstepTime;
public CharacterController controller;
void Update ()
if(controller.velocity.magnitude > footstepThreshold)
if(Time.time - lastFootstepTime > footstepRate)
lastFootstepTime = Time.time;
audioSource.PlayOneShot(footstepClips[Random.Range(0, footstepClips.Length)]);
另外,我认为我从编码学位网站获得的代码已经过时了。另外,如果这个帖子中有任何语法错误是因为我在夜间犯了这个错误,如果你认为这是一个错误,我们深表歉意。
【问题讨论】:
请有人帮帮我 您需要将所有内容都包装在一个 class 中......这是基本的 c# 您的类应该是public class Footstep : MonoBehaviour ...
,因为对于组件,脚本名称必须与类名称匹配才能在 Unity 中正常工作
【参考方案1】:
您的代码不包含在类中。当您统一创建 C# 脚本时,它会自动包含类声明,以便您将代码与启动和更新函数一起放入。
您需要在 using 语句下方和第一个变量声明上方添加行 public class Footstep : MonoBehaviour
。不要忘记在文件末尾添加一个右花括号
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Footstep : MonoBehaviour
public AudioClip[] footstepClips;
public AudioSource audioSource;
public float footstepThreshold;
public float footstepRate;
private float lastFootstepTime;
public CharacterController controller;
void Update ()
if(controller.velocity.magnitude > footstepThreshold)
if(Time.time - lastFootstepTime > footstepRate)
lastFootstepTime = Time.time;
audioSource.PlayOneShot(footstepClips[Random.Range(0, footstepClips.Length)]);
【讨论】:
我强烈建议您将PlayerController
更改为 Footstep
,否则 OP 将直接遇到 Unity 找不到组件的下一个问题;) 脚本和类名必须与 OP 完全匹配脚本称为Footstep.cs
(请参阅有问题的错误)
谢谢!我更新了。我去看了教程,这里的那部分问题完全让我忘记了。以上是关于Assets\Footsteps.cs(5,20):错误 CS0116:命名空间不能直接包含字段或方法等成员 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在 MongoDB 聚合期间将字符串(格式:“1,5,20,22”)转换为整数数组( [1,5, 20, 22] )?