Unity3D:如何确定游戏对象的角落,以便根据它来定位其他游戏对象?

mta*_*lka 6 c# unity-game-engine vuforia

我的问题是关于是否有办法知道游戏对象角落的坐标.我所拥有的是三个Vuforia AR目标和一个游戏对象,在这种情况下是一个立方体.

我需要实现的是,当我移动目标时,立方体的角落将跟随目标,例如.立方体将与目标之间的空间一样宽.

现在它是如何做到的,它是检查目标之间的距离并根据它设置立方体的比例.这导致立方体总是从其设定位置扩展,这使得目标的定位在现实生活中变得笨拙.

这里有几张图片展示了它在执行过程中的作用:

这是附加到cube-object的代码:

using UnityEngine;
using System.Collections;

public class show : MonoBehaviour {

float distancex;
float distancez;

// Use this for initialization
void Start () {
    renderer.enabled = false;
}

// Update is called once per frame
void Update () {
    if (GameObject.Find ("target1").renderer.enabled && GameObject.Find ("target2").renderer.enabled && 
        GameObject.Find ("target3").renderer.enabled && GameObject.Find ("target4").renderer.enabled) 
    {
        renderer.enabled = true;

    }

    distancex = Vector3.Distance ((GameObject.Find ("target1").transform.position), (GameObject.Find ("target2").transform.position));
    distancez = Vector3.Distance ((GameObject.Find ("target2").transform.position), (GameObject.Find ("target3").transform.position));


    Debug.Log (distancex);
    Debug.Log (distancez);

    transform.localScale = new Vector3((distancex), transform.localScale.y, transform.localScale.z);
    transform.localScale = new Vector3(transform.localScale.x, transform.localScale.y, (distancez));

    Debug.Log (transform.localScale);
}
}
Run Code Online (Sandbox Code Playgroud)

如何使对象的角落跟随目标?我需要将边的宽度作为目标之间距离的宽度,有没有办法在不使用刻度的情况下实现这一点?

小智 9

我知道在你问这个问题之后已经有一段时间了,但是当我想要自己排序类似的时候,我遇到了这个问题.

我发现我需要(其他人可能会得到帮助)就是使用Renderer.bounds

在实践中对我来说是什么样的:

void Update () {
  rend = currentGameObject.GetComponent<Renderer>();
  Debug.Log(rend.bounds.max);
  Debug.Log(rend.bounds.min);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的目标是位于0,0,200位置的四边形和200,200,1的标度.rend.bounds.max的输出是(100.0,100.0,200.0)min (-100.0,-100.0,200.0).这为您提供了每个角落的角落位置(我的示例是在2D空间中,但这也适用于3D).

如果你想要右上角的话,你可以得到它的XY,你可以得到它的左上角,你可以renderer.bounds.max得到它renderer.bounds.max.yrenderer.bounds.min.x.希望有所帮助!

干杯!


mta*_*lka 0

我通过确定目标之间的位置并计算它们的平均值来解决这个问题。然而,这并非完美无缺,因为当系统使用外部模型时,很难确定模型准确跟随目标角落的比例因子。