2017-04-20 12 views
0

私はエラーとNullReferenceExceptionを取得しています:(資産/スクリプト/ ThirdPersonCamera.csで:24)オブジェクトのインスタンス ThirdPersonCamera.Update(に設定されていないオブジェクト参照)ユニティ5三人称スクリプトエラー

マイコード:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using System.Runtime.InteropServices; 
using UnityEngine.SocialPlatforms; 
using UnityEngine.UI; 
using UnityStandardAssets.Utility; 

public class ThirdPersonCamera : MonoBehaviour { 

    [SerializeField]Vector3 cameraOffset; 
    [SerializeField]float damping; 

    Transform cameraLookTarget; 
    Player localPlayer; 

    void Awake() { 
     GameManger.Instance.OnLocalPlayerJoined += HandleOnLocalPlayerJoined; 
    } 

    void HandleOnLocalPlayerJoined (Player player) { 
     localPlayer = player; 
     cameraLookTarget = localPlayer.transform.Find("cameraLookTarget"); 

     if (cameraLookTarget == null) { 
      cameraLookTarget = localPlayer.transform; 
     } 
    } 


    // Update is called once per frame 
    void Update() { 
     Vector3 targetPosition = cameraLookTarget.position + localPlayer.transform.forward * cameraOffset.z + 
       localPlayer.transform.up * cameraOffset.y + 
       localPlayer.transform.right * cameraOffset.x; 

     transform.position = Vector3.Lerp(transform.position, targetPosition, damping * Time.deltaTime); 
    } 
} 

スクリプト実行順序を変更しようとしましたが、何も機能しません。私は何が間違っているのか分からない。

答えて

1

スクリプト内のLocalPlayer変数にゲームオブジェクトが割り当てられていることを確認してください。このオブジェクトは、引用符なしで 'cameraLookTarget'と呼ばれるものを階層内で探しています。大文字の問題

Awake()メソッドでLocalPlayerオブジェクトを検索することをお勧めします.Awake()メソッドがnullの場合は、Debug.Log( "ローカルプレーヤーが割り当てられていません")を使用して割り当てられていないことを警告します。

関連する問題