前提・実現したいこと
リンク内容
このサイトを手順通りにカメラ操作の処理を書き、手順通りにしたがボタンを押しても反応せず、以下のエラーが発生する。
ボタンをおしてカメラがY軸方向に90°回転させたい。
発生している問題・エラーメッセージ
UnassignedReferenceException: The variable cameraTransform of Camera_controller has not been assigned. You probably need to assign the cameraTransform variable of the Camera_controller script in the inspector. UnityEngine.Transform.get_localRotation () (at <a5949084587241189a974c7df1839e1c>:0) Camera_controller.RotateCamera (System.Single angle) (at Assets/script/Camera_controller.cs:24)
該当のソースコード
C#
1using UnityEngine; 2using System.Collections; 3 4public class Camera_controller : MonoBehaviour 5{ 6 7 Transform cameraTransform; 8 // Start is called before the first frame update 9 void Start() 10 { 11 cameraTransform = Camera.main.transform; 12 Debug.Log(cameraTransform.transform.rotation); 13 14 } 15 //カメラをY軸方向に回転させるメソッド 16 //ボタンを通じて呼び出すので、このスクリプト内では定義しておくだけ。 17 public void RotateCamera(float angle) 18 { 19 Debug.Log(angle); 20 if(angle == 0) 21 { 22 return; 23 } 24 cameraTransform.localRotation = Quaternion.Euler(Vector3.up * angle) *cameraTransform.localRotation; 25 Debug.Log(cameraTransform.transform.rotation); 26 //カメラのローカル座標
試したこと
変数が代入されていないエラーだったので、debug.logで値が設定されていないものを調べた。
C#
1cameraTransform.localRotation = Quaternion.Euler(Vector3.up * angle) *cameraTransform.localRotation;
の部分で代入ができていない事が分かった。
処理を理解できていなかったのでQuaternionやVector3について調べたが、なぜもう一度localRotationを掛ける必要があるのかが分からなかった。
補足情報(FW/ツールのバージョンなど)
Unity2019.4.26
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/25 04:41 編集
2021/05/25 05:33
2021/05/25 09:09
2021/05/25 09:50
2021/05/26 08:21
2021/05/26 08:28
2021/05/26 08:55