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.y和renderer.bounds.min.x.希望有所帮助!
干杯!