質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

543閲覧

RotateAroundのoffsetの必要性。

退会済みユーザー

退会済みユーザー

総合スコア0

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/11/30 18:00

前提・実現したいこと

いつもRotateAroundは、offsetを書かずに組んでいたのですが、こちらの質問を拝見し、
offsetを書く必要性があれば知りたいと思いました。
「RotateAroundは、実行時の回転の中心と回転体の距離(=offset)が保たれて回転する」という認識だったので、
offsetをあえて書く場合、どのようなメリットがあるのか教えていただきたいです。
ご教示お願いします。
また、上記認識が間違っていた場合もご教示お願いします。

試したこと

回転体がカメラだと挙動がわかりにくいので、キューブをカメラに見立て、球をプレイヤーとしました。
イメージ説明

下記のコードにおいて、offsetに関するコードのコメントの付け外しの差異をゲーム実行して確認してみましたが、
特に差異はなかったように見えました。

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Rotate : MonoBehaviour 6{ 7 [SerializeField] 8 GameObject player; 9 [SerializeField] 10 GameObject cube; 11 12 Vector3 offset; 13 14 void Start() 15 { 16 //offset = transform.position - player.transform.position; 17 } 18 19 void LateUpdate() 20 { 21 //transform.position = player.transform.position + offset; 22 23 if (Input.GetKey ("right")) { 24 cube.transform.RotateAround(player.transform.position,Vector3.up,-2.0f); 25 //offset = cube.transform.position - player.transform.position; 26 } 27 if (Input.GetKey ("left")) { 28 cube.transform.RotateAround(player.transform.position,Vector3.up,2.0f); 29 //offset = cube.transform.position - player.transform.position; 30 } 31 32 } 33}

RotateAroud実行前に、スクリプトでプレイヤーとカメラ(回転の中心と回転体)を適切な距離に調整することが
必要な場合はあるかもしれませんが、
その場合でも、その調整した距離を変数offsetに保存させておく必要はない気がするのですが、
なにかメリットや避けられる不具合などがありましたら、ご教示お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

動かないオブジェクトを中心に回るのであれば確かにRotateAround単独でいいと思いますが、あちらのケースでは

ちなみに、PlayerオブジェクトはWASDキーで移動できるように設定しています。

とおっしゃっています。offsetの主な役割はプレイヤーの平行移動に対してカメラを追従させることでして、そのような動きはRotateAroundだけでは面倒になってしまうでしょう。

投稿2019/11/30 18:53

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/01 02:26

ご回答ありがとうございます。 肝心な所に気づいてませんでした。 勉強になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問