やりたいこと
下の画像のように
始点から終点まで25.0の距離間隔(DISTANCE)でオブジェクトを配置
設定するのは間隔距離だけなので設置されるオブジェクト数は最終的に何個になってもよい
また、始点と終点にもオブジェクトを置きたい
そこで下記のソースを実行しましたが
void Start() { VirtualCamera = GetComponent<CinemachineVirtualCamera>(); Object = (GameObject)Resources.Load("Cube"); if (VirtualCamera != null) { VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_AutoDolly.m_Enabled = false; if (Object != null) { while (VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_PathPosition <= VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_Path.PathLength) { Vector3 ObjPos = VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_Path.GetComponent<CinemachineSmoothPath>().EvaluatePosition(VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_PathPosition); SetObject(ObjPos); VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_PathPosition += 25.0f; Debug.Log("ObjPos = " + ObjPos); } } } VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_PathPosition = 0.0f; VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_AutoDolly.m_Enabled = true; }
うまくいきません 上記のソースの結果としては、同じ座標に何個もオブジェクトを配置する状態となってしまいました
ログでわかっているのはm_PathPositionを動かしているのに座標(ObjPos)が動いていない状態です
ちょっと気になるのはバーチャルカメラに設定したスムースパス情報の読み込みを
VirtualCamera.GetCinemachineComponent<CinemachineTrackedDolly>().m_Path.GetComponent<CinemachineSmoothPath>()
としていることですが、これは問題ないですよね?
またバーチャルカメラの座標はEvaluatePositionで取得できることと認識していますがこれも間違いないですよね?
画像のような結果にするにはどうすればよいでしょうか?よろしくお願いいたします。
「自動的」の条件についてなるべく細かく記述してください。
例)CinemachineSmoothPath の始点から終点に対して等間隔に n 個のオブジェクトを置く。始点と終点にもオブジェクトを置く。
ここ(「質問への追記・修正の依頼」欄)に書くのではなく、質問自体を編集してください。
回答1件
あなたの回答
tips
プレビュー