前提・実現したいこと
最もプレイヤーに近いオブジェクトだけをターゲットするというのは、最も距離の近いオブジェクトを取得するが、
二番、三番と距離の近いオブジェクトを取得したいです。
発生している問題・エラーメッセージ
以下のスクリプトを応用できますか?
using UnityEngine; using System.Collections; public class nearTest : MonoBehaviour{ public List<GameObject> Obj = new List <Gameobject>(); //オブジェクトリスト//Inspectorから取得 private nearObj; //オブジェクト格納変数 // Use this for initialization void Start(){ //最も近かったオブジェクトを取得 nearObj = serchTag(Obj); } //指定されたタグの中で最も近いものを取得 GameObject serchTag(List<GameObject> nowObj){ float tmpDis = 0; //距離用一時変数 float nearDis = 0; //最も近いオブジェクトの距離 //string nearObjName = ""; //オブジェクト名称 GameObject targetObj = null; //オブジェクト //タグ指定されたオブジェクトを配列で取得する foreach (GameObject obs in nowObj){ //自身と取得したオブジェクトの距離を取得 tmpDis = Vector3.Distance(obs.transform.position, nowObj.transform.position); //オブジェクトの距離が近いか、距離0であればオブジェクト名を取得 //一時変数に距離を格納 if (nearDis == 0 || nearDis > tmpDis){ nearDis = tmpDis; //nearObjName = obs.name; targetObj = obs; } } //最も近かったオブジェクトを返す return targetObj; }
補足情報(FW/ツールのバージョンなど)
Unity ver2020.3.12.f1
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。