Assets\Footsteps.cs(5,20): error CS0116: 命名空间不能直接包含字段或方法等成员
Assets\Footsteps.cs(5,20): error CS0116: A namespace cannot directly contain members such as fields or methods
就我在为 Unity 创建足迹脚本时遇到的问题寻求帮助。
我将此代码(在 C# 中)粘贴到一些关于如何设置脚步声的 manual/guide 上,但是当我保存它并返回到 Unity 时发生错误,如下所示:
Assets\Footsteps.cs(5,20): error 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 中。当您在 unity 中创建 C# 脚本时,它会自动包含 class 声明,供您将代码与启动和更新函数一起放入。
您需要在 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)]);
}
}
}
}
就我在为 Unity 创建足迹脚本时遇到的问题寻求帮助。 我将此代码(在 C# 中)粘贴到一些关于如何设置脚步声的 manual/guide 上,但是当我保存它并返回到 Unity 时发生错误,如下所示:
Assets\Footsteps.cs(5,20): error 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 中。当您在 unity 中创建 C# 脚本时,它会自动包含 class 声明,供您将代码与启动和更新函数一起放入。
您需要在 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)]);
}
}
}
}