Unity教程,IEnumerator ShotEffect(),错误
Unity Tutorial, IEnumerator ShotEffect(), error
[Unity 版本 5.6.1f1; Visual Studio2017]
嗨,
我正在学习使用 Raycast 的基本 Unity FPS 教程。调用
时出现错误
私有 IEnumerator ShotEffect()
如下,
Feature "local Functions" is not available in C#4. Please use Language version 7 or greater.
我该如何解决这个问题?这是 Unity 教程中的 copy/pasted。这种类型调用有替代方法吗? https://unity3d.com/learn/tutorials/lets-try/shooting-with-raycasts?playlist=41639&_ga=2.32575166.1847645017.1499027918-1229599585.1498623818
void Update() {
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
// Update the time when our player can fire next
nextFire = Time.time + fireRate;
// Start our ShotEffect coroutine to turn our laser line on and off
StartCoroutine(ShotEffect()); //**Call here**
// Create a vector at the center of our camera's viewport
Vector3 rayOrigin = fpsCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f));
// Declare a raycast hit to store information about what our raycast has hit
RaycastHit hit;
}
private IEnumerator ShotEffect() //**Error here**
{
// Play the shooting sound effect
gunAudio.Play();
// Turn on our line renderer
laserLine.enabled = true;
//Wait for .07 seconds
yield return shotDuration;
// Deactivate our line renderer after waiting
laserLine.enabled = false;
}
您已经在 函数 ShotEffect
中定义了 Update
函数。检查你的牙套。
void Update() {
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
// Update the time when our player can fire next
nextFire = Time.time + fireRate;
// Start our ShotEffect coroutine to turn our laser line on and off
StartCoroutine(ShotEffect()); //**Call here**
// Create a vector at the center of our camera's viewport
Vector3 rayOrigin = fpsCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f));
// Declare a raycast hit to store information about what our raycast has hit
RaycastHit hit;
}
} // Add brace here
private IEnumerator ShotEffect()
{
// Play the shooting sound effect
gunAudio.Play();
// Turn on our line renderer
laserLine.enabled = true;
//Wait for .07 seconds
yield return shotDuration;
// Deactivate our line renderer after waiting
laserLine.enabled = false;
}
[Unity 版本 5.6.1f1; Visual Studio2017]
嗨, 我正在学习使用 Raycast 的基本 Unity FPS 教程。调用
时出现错误私有 IEnumerator ShotEffect()
如下,
Feature "local Functions" is not available in C#4. Please use Language version 7 or greater.
我该如何解决这个问题?这是 Unity 教程中的 copy/pasted。这种类型调用有替代方法吗? https://unity3d.com/learn/tutorials/lets-try/shooting-with-raycasts?playlist=41639&_ga=2.32575166.1847645017.1499027918-1229599585.1498623818
void Update() {
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
// Update the time when our player can fire next
nextFire = Time.time + fireRate;
// Start our ShotEffect coroutine to turn our laser line on and off
StartCoroutine(ShotEffect()); //**Call here**
// Create a vector at the center of our camera's viewport
Vector3 rayOrigin = fpsCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f));
// Declare a raycast hit to store information about what our raycast has hit
RaycastHit hit;
}
private IEnumerator ShotEffect() //**Error here**
{
// Play the shooting sound effect
gunAudio.Play();
// Turn on our line renderer
laserLine.enabled = true;
//Wait for .07 seconds
yield return shotDuration;
// Deactivate our line renderer after waiting
laserLine.enabled = false;
}
您已经在 函数 ShotEffect
中定义了 Update
函数。检查你的牙套。
void Update() {
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
// Update the time when our player can fire next
nextFire = Time.time + fireRate;
// Start our ShotEffect coroutine to turn our laser line on and off
StartCoroutine(ShotEffect()); //**Call here**
// Create a vector at the center of our camera's viewport
Vector3 rayOrigin = fpsCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f));
// Declare a raycast hit to store information about what our raycast has hit
RaycastHit hit;
}
} // Add brace here
private IEnumerator ShotEffect()
{
// Play the shooting sound effect
gunAudio.Play();
// Turn on our line renderer
laserLine.enabled = true;
//Wait for .07 seconds
yield return shotDuration;
// Deactivate our line renderer after waiting
laserLine.enabled = false;
}