🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Unity

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

Q&A

解決済

1回答

824閲覧

Vector3の座標からある方向に新たな座標を作りたい

RyosukeSHIBATA

総合スコア11

Unity

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

0グッド

0クリップ

投稿2019/10/04 11:58

Vector3(a,b,c) の座標がありその座標から+(1,1,1)の座標を作りたいです.
また,その座標は回転を加えたらその回転が座標として新たに作った座標が(n,m,k)のように変わってほしいのですがいい作り方はありませんか?

(a,b,c)は変数で,外部のVRリモコンから取ってくるのですがその点周りに自由にオブジェクトを配置してリモコンの回転に対応できたらという考えです.

自分の考え

ゲームオブジェクトを(0,0,0)においてそのゲームオブジェクトの法線を用意してみたらなんとかできるかなとも思ってます

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

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

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

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

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

sakura_hana

2019/10/05 06:41 編集

「座標に回転を加える」の意味がよく分かりませんが(座標は点なのでそれ自体には回転は加えられません。加えられるとしたら、回転の中心からその座標へのベクトルを作って、それを回す形になります)、 以下が参考になるのではないでしょうか。 http://tsubakit1.hateblo.jp/entry/2014/08/02/030919
guest

回答1

0

ベストアンサー

Vector3(a,b,c) の座標がありその座標から+(1,1,1)の座標を作りたいです。

のことですが例えば,
その変数a,b,cが入ったVector3変数をOldVector。新しいVector3変数をNewVectorと名付けるとしたら、一番わかりやすい方法は、こうなります。

C#

1NewVector = new Vector3(OldVector.x + 1, OldVector.y + 1, OldVector.z + 1);

これでNewVectorにOldVectorのa,b,cに各1づつ追加された値が返ってきます。

Vector3の要素ですが、Vector3 A(1, 2, 3)という変数Aというものがあったとしたら、これは左から
A.x
A.y
A.z
でそれぞれ参照が可能になっています。なのでこれらを参照した場合
A.x は 1
A.y は 2
A.z は 3
が返ってきます。

とりあえずこれが一番目の問の答えだと思います。何か不足があったら言ってください。
二番目についてはまだ考え途中ですので、とりあえず一番目だけ答えさせていただきました。
長文失礼しました。

投稿2019/10/04 13:15

編集2019/10/04 13:16
rintarou1234

総合スコア157

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問