c# - Assets\Footsteps.cs(5,20): 错误 CS0116: 命名空间不能直接包含字段或方法等成员
问题描述
针对我在为 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)]);
}
}
}
另外,我认为我从编码学位网站获得的代码已经过时了。此外,如果这个线程中有任何语法错误是因为我在夜间犯了这个错误,如果你认为这是一个错误,我很抱歉。
解决方案
您的代码不包含在类中。当您统一创建 C# 脚本时,它会自动具有类声明,以便您将代码与启动和更新函数一起放入。
您需要public class Footstep : MonoBehaviour {
在 using 语句下方和第一个变量声明上方添加该行。不要忘记在文件末尾添加一个右花括号}
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)]);
}
}
}
}
推荐阅读
- c# - 用来自组合框的数据填充文本框,与 xml 连接
- r - 如何在不从 y 轴移除刻度的情况下抑制水平网格线?
- google-analytics - 如何分析奇怪的目标流结果?是否可以查看特定用户的旅程?
- asp.net-core - 将多个 Razor 页面呈现为 Html
- reactjs - 当我单击面板上的按钮时,有没有办法防止 React 中的侧面板重新渲染(滚动回面板顶部)?
- mysql - Trim leading and update in mysql
- google-apps-script - 正在寻找一个 onEdit 脚本,该脚本可用于在编辑谷歌表格单元格时更改其颜色?
- c++ - 使用术语“[Object's] identity”的 cppreference 对 c++11 和 c++17 有两种不同的含义吗?
- java - javafx - 未捕获表视图鼠标事件
- r - R 闪亮的应用程序在本地工作,但部署后,我得到一个错误,我相信 data.table: object 'CcopyNamedInList' not found