参考
https://teratail.com/questions/182021
3D画面上にregidbodyで直進しているボールがあります。
カメラがこちらに追従しており、ボールがカメラの画面外にでたら移動制限させるような処理をしたいです。
参考を元に端の座標を求めてみたのですが、minもmaxもほぼ同じ値が返ってきてしまいます。
カメラの初期パラメータは画像のような感じです。
カメラ追従はZ軸方向にしか移動しないため、Y軸の制御は必要ありません。
targetPosはボールの位置になります。
この場合、どのように修正すればアドバイスいただけないでしょうか。
C#
1float distance = targetPos.z - Camera.main.transform.position.z; 2Vector3 min = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, distance)); 3Vector3 max = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, distance)); 4// if(targetPos.z <= min.z) targetPos.z = min.z; 5Debug.Log(min + " " + max); 6targetPos.z = Mathf.Clamp(targetPos.z, min.z, max.z);
あなたの回答
tips
プレビュー