前提・実現したいこと
画像の赤い点を軸として、大砲のようにオブジェクトを回転させたい。
ソースコード
C#
1public class TaihoRotate : MonoBehaviour 2{ 3 // Start is called before the first frame update 4 void Start() 5 { 6 7 } 8 9 // Update is called once per frame 10 void Update() 11 { 12 transform.RotateAround(new Vector3(0,0,1), new Vector3(0,0,2),5); 13 } 14} 15
試したこと
transformのRotateやRotateAroundなどを使いコードを記述してみたのですが
全くあらぬ方向に回ってしまい、中々思い通りにいきません。
Rotate系を使うのはやめたほうが良いのでしょうか?
使える関数など教えて頂けると幸いです。。
補足情報(FW/ツールのバージョンなど)
Unity 2019.1.0f2
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
transform.RotateAroundが使えます
ワールド座標の point を中心とした軸( axis )で angle 度回転させるメソッドです
https://docs.unity3d.com/ja/current/ScriptReference/Transform.RotateAround.html
投稿2019/06/25 13:02
総合スコア126
0
すごい簡単にやるなら空のゲームオブジェクト作ってpivotを変更してやる方法が使えます。
投稿2019/06/26 00:15
総合スコア3302
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
Quaternion.AngleAxis メソッドを使ってイメージ通りに回転できないでしょうか?
参考:【Unity】 Quaternionの使い方
https://www.f-sp.com/entry/2017/08/30/171353
C#
1//--------------------------------------- 2// Y軸周りを秒速45度で回転させるサンプル 3//--------------------------------------- 4 5// Y軸周りを回転するQuaternionを作成 6Quaternion rotY = Quaternion.AngleAxis(45.0f * Time.deltaTime, Vector3.up); 7 8// 現在の回転値と合成 9Quaternion newRotation = rotY * transform.rotation; 10 11// 新しい回転値を設定 12transform.rotation = newRotation;
投稿2019/06/25 09:14
編集2019/06/26 07:59総合スコア6500
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。