2017-07-03 2 views
-1

[Unityバージョン5.6.1f1; Visual Studio 2017]Unityチュートリアル、IEnumerator ShotEffect()、エラー

こんにちは 私は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

あなたは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; 
    }