2017-07-03 61 views
-1

[Unity Version 5.6.1f1; Visual Studio 2017]Unity Tutorial,IEnumerator ShotEffect(),error

嗨, 我正在阅读使用Raycast的基本Unity FPS教程。调用

私人的IEnumerator ShotEffect()

如下,

功能 “本地功能” 是不是在C#4时可用我得到一个错误。请使用语言版本7或更高版本。

我该如何解决这个问题?这是从Unity教程中复制/粘贴的。这种类型的电话是否有其他选择? 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; 
     } 

回答

3

您已经定义ShotEffectUpdate功能。检查你的大括号。

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; 
    }