UnityのLineRendererを使用し、ランダムに表示されるオブジェクトの進行方向に枠線のみの扇形を付与したいのですが、sinθなどを使用しスクリプトから生成する記述方法と、可能であれば生成された扇形をオブジェクトの進行方向に表示する方法を教えて頂きたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
私には全く理解できないQuaternionを使用して、
using System.Collections; using System.Collections.Generic; using UnityEngine; public class FindArea : MonoBehaviour { LineRenderer line; // 角度を設定 [SerializeField] int angle = 60; private void Start() { // コンポーネント追加 line = gameObject.AddComponent<LineRenderer>(); // 幅を0.1f line.startWidth = 0.1f; // ラインの色を黒 line.material.color = Color.black; } private void Update() { // オブジェクトを回転させてみる transform.Rotate(new Vector3(0, 0, 0.1f)); // オブジェクト前方 var direction = transform.forward; // 扇型になるような位置情報を格納するためのリスト var positions = new List<Vector3>(); // 始点として自身の位置を追加 positions.Add(transform.position); // 0を中央としてangle角分ループさせる for(int i = -this.angle / 2; i < this.angle / 2; i++) { // 意味は分からないです、分かる人に聞いて下さい var rot = Quaternion.AngleAxis(i, direction); // 上記を使って良い感じに位置を設定します var position = rot * transform.up * 5.0f + transform.position; // リストに追加 positions.Add(position); } // 終点として自身の位置を追加 positions.Add(transform.position); // ラインレンダラーコンポーネントに上記コードによる扇形に必要な数を設定 line.positionCount = positions.Count; // ラインを引く扇形の位置情報を与える line.SetPositions(positions.ToArray()); } }
こんな感じでどうでしょうか?
投稿2022/07/18 16:31
総合スコア10
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。