Unity回転座標の取得と加算
どうもマカロンです。今回は現在ネットに転がっているUnityにおける回転座標に関する記事が初心者にはわかりにくいと感じたため、できるだけわかりやすく解説させていただきたいと思います。
回転座標について
まずは回転座標は2種類存在します。
1つ目はクォータ二オン
2つ目はオイラー角です
いきなり知らない人からすれば何のこと?ってなると思いますがこの記事を理解する上では詳しい知識はいりません!(詳しく知りたい人は調べてね)
超簡単に説明するとオイラー角は角度、クォータニオンは単位球上の点を表します。
今回この記事ではオイラー角の方を使用して解説していきます。
角度の取得
Unityにおけるオイラー角はInspectorのRotationの値です。
これをScript上で取得します
gameObject.transform.localEulerAngles//オブジェクトの回転座標取得
はいこれだけです。これを書けばとりあえず現在のオブジェクトの回転座標を取得することができます。
オイラー角の回転座標を加算
続いて加算していきます。
transform.Rotate(new Vector3(0, 0, 1.0f));//1フレームごとに1度加算
はいこれだけです。この場合はZ座標を1フレームごとに1度ずつ加算していくというコードになります。
お次は使用例です。
使用例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Rotation : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (gameObject.transform.localEulerAngles.z <= 30)//オイラー角を取得して比較
{
transform.Rotate(new Vector3(0, 0, 0.5f));//1フレームごとに0.5度回転
}
}
}
このプログラムは30度回転したら停止するというものです。
自分はゲーム作りをしているので主にエネミーの行動パターンなどに使用したりしています。
最後に
まとめてみるとなんでこんなことに躓いてたのかと思う方もいると思いますが日々プログラムのコードを打っているとこんなの日常茶飯事です。なのにそういう時に限って単的に解説しているサイトってないんですよねぇ~
ということで今回は回転座標について簡単にまとめていました。
ためになったという方が一人でもいれば幸いです。また貧乏ながら現在シューティングゲームを作成しているのでよろしければご支援の方もよろしくお願いします。
こんな記事を書いてほしいなどあればコメントお願いします!
最後まで読んでいただきありがとうございました!ではまた
ゲームを作るにはやはりお金がないとできることが限られてしまいます。なのでよろしければどうか支援してくださるとうれしいです