Kanade Labo

かなで研究所

{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だった。

-unity