お世話になっております。
###前提・実現したいこと
時刻をPlaneに表示させ、そのPlaneが常に
カメラの方向を向くようにしたいと思っています。
時刻を表示しているPlaneは以下のような構造をしています。
※カメラの角度はインスペクター上でX:30,Y:0,Z:0です。
###発生している問題・エラーメッセージ
以下の画像のように時刻を表示しているPlaneが後ろを向いてしまいます。
###該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class LookAtScript : MonoBehaviour 6{ 7 /// <summary> 8 /// 移動速度 9 /// </summary> 10 public float speed = 0.5f; 11 /// <summary> 12 /// 対象Gameobject 13 /// </summary> 14 public GameObject Target; 15 /// <summary> 16 /// デフォルト回転量 17 /// </summary> 18 private Quaternion DefaultQ; 19 20 // Use this for initialization 21 void Start() 22 { 23 DefaultQ = transform.root.localRotation; 24 } 25 26 // Update is called once per frame 27 void Update() 28 { 29 transform.LookAt(Target.transform, Vector3.forward); 30 transform.localRotation *= DefaultQ; 31 } 32}
###試したこと
LookAtの第二引数は上方ベクトルの方向なので、
PlaneTimeの上方ベクトルとしてVector3.forwardを指定しても裏返り、
Textの上方ベクトルとしてVector3.upにしても裏返ってしまいました。
その他色々とベクトルをマイナスにしたり、Vector3.back、
Vector3.downにもしてみていますが、正面を向くことはありません。
向きが相殺してしまっている???
transform.localRotation *= DefaultQ;
上記の1文をコメントアウトしたりしてみましたが、
今度は角度がおかしくなってしまい、カメラの方向には向いていません。
###補足情報(言語/FW/ツール等のバージョンなど)
unity5.5.0f3
Visual Studio2015
###参考にしたURL
プロ生ちゃんの視線を操作する(Transform.LookAt)
http://onoty3d.hatenablog.com/entry/2015/03/31/123832
Unity: Transform.LookAt()の回転軸を制限する
http://hamken100.blogspot.jp/2012/05/unity-transformlookat.html
回答1件
あなたの回答
tips
プレビュー