{unity/memo}ThirdPersonController.cs:258の解決方法
Unity初心者の かなで がネットで調べて、実践できた知識の覚書。
新しいエリアを作って、平面を作成し、PlayerArmatureを置いて再生。
WASDで移動させようとするとなぜか下記のエラーが出て移動しない。
NullReferenceException: Object reference not set to an instance of an object
StarterAssets.ThirdPersonController.Move () (at Assets/StarterAssets/ThirdPersonController/Scripts/ThirdPersonController.cs:258)
StarterAssets.ThirdPersonController.Update () (at Assets/StarterAssets/ThirdPersonController/Scripts/ThirdPersonController.cs:161)
そんなときの対処法。
目標:ThirdPersonController.cs:258エラーを解決
private void Update()
{
_hasAnimator = TryGetComponent(out _animator);
JumpAndGravity();
GroundedCheck();
Move(); ←161行目
}
~
if (_input.move != Vector2.zero)
{
if (_input.move != Vector2.zero)
{
_targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg +
_mainCamera.transform.eulerAngles.y; ←258行目
float rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, _targetRotation, ref _rotationVelocity,
RotationSmoothTime);
// rotate to face input direction relative to camera position
transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f);
}
float rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, _targetRotation, ref _rotationVelocity,
RotationSmoothTime);
// rotate to face input direction relative to camera position
transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f);
}
何もない空っぽから始めようとしたのがダメだったようで、MainCameraが存在しないときに発生する模様。
タグが「MainCamera」のカメラを作ってあげたらOKだった。