Q&A
実現したいこと
unityで、transform.localRotationをつかって、回転座標の値を取得したい。
ここに実現したいことを箇条書きで書いてください。
- ▲▲機能を動作するようにする
前提
ここに質問の内容を詳しく書いてください。
最後の行の、Debug.Log を使って回転座標を都度都度確かめていたのですが、unityのインスペクター上で90と表示されているのにも関わらず、コンソール上では,0.5ではなく,0.76393....という風に表示されていました。
インスペクター上の回転座標は180~ー180,transform.rotationの値は1~-1の範囲なので、明らかに値が一致していないことを疑問に思ったので、質問させていただきました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
public class RAtar : MonoBehaviour
{
Transform trans;
public GameObject tigu;
Transform tigutrans;
float nx = 0;
float ny = 0;
float nz = 0;
Transform critrans;
float settlex;
float settlez;
float cos;
float sin;
float dir;
float zdistance;
float xdistance;
float rad;
void Start()
{
trans = GetComponent<Transform>();
tigutrans = tigu.GetComponent<Transform>();
critrans = GameObject.Find("criterion").GetComponent<criterion>().transform;
}
public void setnx(float settlex) { nx = settlex; } public void setny(float settley) { ny = settley; } public void setnz(float settlez) { nz = settlez; } void Update() { if (tigutrans.rotation.y >= 0) { sin = Mathf.Sin(tigutrans.rotation.y * 180 * Mathf.Deg2Rad); cos = Mathf.Cos(tigutrans.rotation.y * 180 * Mathf.Deg2Rad); } else if (tigutrans.rotation.y < 0) { sin = Mathf.Sin(tigutrans.rotation.y *-1 * 180 * Mathf.Deg2Rad)*-1; cos = Mathf.Cos(tigutrans.rotation.y*-1* 180 * Mathf.Deg2Rad); } this.trans.position = new Vector3(tigutrans.position.x + nx + cos, tigutrans.position.y + ny - 1, tigutrans.position.z + nz - sin);//xは0.2f、yは0.1f if (Input.GetKeyDown(KeyCode.LeftShift)) { Debug.Log(tigutrans.localRotation.y); } }
}
言語名 C#
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/07 08:48