実現したいこと
- エラーメッセージが出ないようにしたい
前提
Unity2021.3.19f1で配列を用いた以下のコードを作成しました。
ゲームを実行すると正常に動いたのですがコンソールにエラーが出てしまいます。
エラーメッセージは「indexが配列の範囲外にアクセスしている」という意味だと思うのですが、インスペクター上で配列の要素を2個設定していますし、配列内のゲームオブジェクトは常にアクティブになっているのでなぜこのようなエラーが出るのかわかりません。
発生している問題・エラーメッセージ
IndexOutOfRangeException: Index was outside the bounds of the array. CameraController.Start () (at Assets/MyUtageProject/CameraController.cs:12) CameraController.SetVcam (System.Int32 index) (at Assets/MyUtageProject/CameraController.cs:21) CameraController.IsVcam1 () (at Assets/MyUtageProject/CameraController.cs:26) CameraController.IsVcam2 () (at Assets/MyUtageProject/CameraController.cs:31)
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using Cinemachine; 5 6public class CameraController : MonoBehaviour 7{ 8 public CinemachineVirtualCamera[] cinemachineVirtualCameras; 9 10 private void Start() 11 { 12 SetVcam(0); 13 } 14 15 private void SetVcam(int index) 16 { 17 foreach (CinemachineVirtualCamera vcam in cinemachineVirtualCameras) 18 { 19 vcam.Priority = 0; 20 } 21 cinemachineVirtualCameras[index].Priority = 10; 22 } 23 24 public void IsVcam1() 25 { 26 SetVcam(0); 27 } 28 29 public void IsVcam2() 30 { 31 SetVcam(1); 32 } 33} 34
補足情報(FW/ツールのバージョンなど)
Unity2021.3.19f1使用
回答2件
あなたの回答
tips
プレビュー