前提・実現したいこと
unityにてカメラの正面方向を基準にオブジェクトを移動させようと考えています。
オブジェクトの向きを移動方向に向ける機能をつけようとしていた所、エラーが発生致しました。
自力では解決できそうに無いため、お力添えを頂きたく存じます。
発生している問題・エラーメッセージ
オブジェクトをワールド座標のZ軸マイナス方向に移動させようとすると、挙動がおかしくなり、最終的にオブジェクトが見えなくなってしまいます。
その際に表示されるエラーメッセージは以下の通りです。
creen position out of view frustum (screen pos 0.000000, 0.000000, 1000.000000) (Camera rect 0 0 956 527)
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Player : MonoBehaviour { 6 7 public float moveSpeed = 5f; //移動速度 8 public float moveForceMultiplier; //移動速度の入力に対する感度 9 public new GameObject gameObject; //カメラのオブジェクト 10 11 private float moveX; 12 private float moveZ; 13 private Vector3 gameForward; 14 private Vector3 moveForward; 15 private Vector3 moveVector; 16 private Quaternion rotation; 17 18 private Rigidbody rb; 19 private Animator animator; 20 21 // Use this for initialization 22 void Start () { 23 rb = GetComponent<Rigidbody>(); 24 animator = GetComponentInChildren<Animator>(); 25 } 26 27 //Update is called once per frame 28 void Update () { 29 moveX = Input.GetAxis("Horizontal"); 30 moveZ = Input.GetAxis("Vertical"); 31 32 //キャラクターの向きを進行方向に向ける 33 if (moveForward != Vector3.zero) 34 transform.rotation = Quaternion.LookRotation(moveForward); 35 36 //アニメーション 37 animator.SetFloat("Speed", rb.velocity.magnitude); 38 } 39 40 private void FixedUpdate() 41 { 42 //カメラの方向から、X-Z平面の単位ベクトルを取得 43 gameForward = Vector3.Scale(gameObject.transform.forward, new Vector3(1, 0, 1)).normalized; 44 //wasdキーの入力値とカメラの向きから、移動方向を決定 45 moveForward = gameForward * moveZ + gameObject.transform.right * moveX; 46 //入力された移動速度 47 moveVector = moveForward * moveSpeed; 48 49 //入力された速度-現在の速度*感度=力 50 rb.AddRelativeForce(moveForceMultiplier * (moveVector - rb.velocity)); 51 } 52} 53
試したこと
「//キャラクターの向きを進行方向に向ける」の下2行をコメントアウトした所、エラーが発生しなくなったので、間違いなくこの部分でエラーが起きていることは分かるのですが、その解決方法が分かりません。
補足情報(FW/ツールのバージョンなど)
unityのバージョンは2017.3.of3 Personal(64bit)と書かれています。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/14 23:40