如何计算生成的立方体之间的距离。骰子上的指定脚本只指定了不同的速度。如何计算各个实例化立方体之间的距离? 对不起,英语不好,我用的是google trnslator。我把代码附在后面,我是个单元的初学者
public class vehicless : MonoBehaviour
{
[SerializeField] private GameObject[] vehicle;
[SerializeField] private Transform spawnPos;
[SerializeField] private float minTime;
[SerializeField] private float maxTime;
int randomInt;
// Use this for initialization
void Start ()
{
StartCoroutine(SpawnVehicle());
}
// Update is called once per frame
void Update ()
{
}
private IEnumerator SpawnVehicle()
{
int i=1;
while(true)
{
randomInt = Random.Range(0,vehicle.Length);
yield return new WaitForSeconds(Random.Range(minTime,maxTime));
GameObject myPrefabInstance = Instantiate(vehicle[randomInt],spawnPos.position,Quaternion.identity);
var red = myPrefabInstance.gameObject.name; //NAME OBJECT
var namecube = red + i ;
Debug.Log("Name object:"+namecube ) ;
i++;
}
}
}
// float dist = Vector3.Distance(----------);
谢谢你的帮助
如果你需要快速找到2个对象之间的距离,我建议你把距离储存在字典里,Tuple Key = (GameObject, GameObject),Value = float。
Dictionary<(GameObject, GameObject), float>()
public Dictionary<(GameObject, GameObject), float>() calculate(GameObject[] objs)
{
var distanceArray = new Dictionary<(GameObject, GameObject), float>();
for (int i = 0; i < objs.Length; i++)
{
for (int j = i; j < objs.Length; j++)
{
if (i == j)
{
//distance between same obj is 0f
continue;
}
else
{
distanceArray.Add((objs[i], objs[j]), Vector3.Distance(objs[i].transform.position, objs[j].transform.position));
}
}
}
return distanceArray;
}
之后你就可以像这样快速的找到两个对象之间的距离。
if (distanceArray.ContainsKey((obj1, obj2)))
{
distance = distanceArray[(obj1, obj2)];
}
else if (distanceArray.ContainsKey((obj2, obj1)))
{
distance = distanceArray[(obj2, obj1)];
}
else if (obj1 == obj2)
{
distance = 0f;
}
else
{
//Error
}
你的问题不是很容易理解,我只是添加了计算距离的方法 在每个新产生的车辆之后。
GameObject myPrefabInstance = Instantiate(vehicle[randomInt],spawnPos.position,Quaternion.identity);
for (int i = 0; i < vehicle.Length; i++)
{
var distance = Vector3.distance(myPrefabInstance.transform.position, vehicle[i].transform.position);
Debug.Log($"Distance: {distance}");
}
我想象一下,立方体有不同的速度,物体可以很多,比如10.15个立方体,一个速度较高的立方体会在速度较慢的立方体面前减速。