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

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

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

Unity

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

Q&A

解決済

1回答

2781閲覧

Unityで平面を90度回転した状態でカメラを向かせる

maru.sa

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

Unity

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

0グッド

0クリップ

投稿2020/05/21 04:21

Unityでカメラを向く平面のスクリプトを編集したいです。

このリファレンスでカメラに向くようにはできたのですが
https://docs.unity3d.com/ja/current/ScriptReference/Transform.LookAt.html

using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform target; void Update() { transform.LookAt(target); } }

このままでは平面は寝たままなので
xを90度回転させて、起こした状態でカメラを向くようにしたいです。

GameObjectを作り、x90度回転した平面の親にして
上記のスクリプトをアタッチすれば解決できるのですが
大量にこのオブジェクトを作りたいので、階層をシンプルにしたいと考えています。

スクリプト初心者なのでお知恵をお借りしたいです。
よろしくお願いいたします。

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

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

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

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

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

stdio

2020/05/21 05:03

質問はカメラかオブジェクトのどちらですか? 私の文章読解能力が低いのか分かりませんが、貴方の質問文を理解することが出来ない。 カメラは既に解決済みのようにも読み取れてしまう。
maru.sa

2020/05/21 05:10

オブジェクトがカメラを向くようにしたいので、オブジェクト側のスクリプトです。 オブジェクトをx90度回転させた状態でカメラを向くようにスクリプトを編集したいと思っています。
maru.sa

2020/05/21 10:28

初心者過ぎて、適当な軸を入れてというのができないので困っています。。 xを90度回転させるという記述を追加したいのですが、 どのように追記すれば良いのかご教授頂けると幸いです。
guest

回答1

0

ベストアンサー

もっとうまい方法がある気はしますが、とりあえずこれで常に90度回転した面を向ける動きはできました。

C#

1public class NewBehaviourScript : MonoBehaviour { 2 public Transform target; 3 void Update() 4 { 5 transform.LookAt(target); 6 7 var turnUpAxis = transform.rotation * Vector3.right; // 現在の向きと直行する軸を得る 8 var turnUpRotation = Quaternion.AngleAxis(90f, turnUpAxis); // その軸で90度回転するQuaternionを作成 9 transform.rotation = turnUpRotation * transform.rotation; // Quaternionを使って回転させる 10 } 11}

投稿2020/05/21 10:44

ku__ra__ge

総合スコア4524

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

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

ku__ra__ge

2020/05/21 10:48

回答した方法以外では ` transform.LookAt(target, Vector3.何か適切な値);` や `transform.localRotation = なにか適切な回転` で出来そうな気もしますが、試した範囲ではうまくいきませんでした……。
maru.sa

2020/05/22 01:09

ありがとうございます! ビルボードってよく使いそうな機能なのに検索しても合致するスクリプトに出会えず 直近に納期が迫っているので本当に助かりました! 時間がある時にもっとスクリプトじっくり勉強したいと思います! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問