操纵X和Y属性Unity2D-Javascript

时间:2016-03-28 23:49:08

标签: javascript unity3d coordinates

我是Unity和Javascript的新手,我将这两个用于我的新项目,我的问题是:为什么要简单地访问和操作x和y值这么难?我的整个生命我已经使用AS进行Flash并回忆起更好的日子,当时人们可以简单地

trace(mc.x);

mc.x++;

但是从我所做的研究来看,似乎人们甚至无法输入游戏对象而无需输入繁琐的

GameObject.Find("mc")

那只是为了访问对象!至于找到物体的位置或甚至将物体移动到某一点,我都不知道。我试着在网上找到答案,但找不到任何东西。

是的,我知道可以通过

添加到对象的位置
GameObject.Find("mc").transform.Translate(1,0,0);

但与AS相当于一个简单的

,即使这看起来也很笨拙
mc.x++;

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

听起来好像你需要了解更多关于components.脚本类中的任何公共GameObject字段(只要它们扩展Component,甚至更好的MonoBehaviour)都可以通过拖动来填充对另一个GameObject的引用并在Inspector窗格中删除该对象。然后,您可以像平常一样引用变量。

GameObjects本身并不是特别有用,但你可以使用GetComponent()来查找这些对象所需的部分 - 比如Transform,Renderer,Rigidbody或你自己的Component类。您还可以创建具有所需特定Component子类型的公共字段,并直接引用它们。

例如:

var anObject : GameObject;
var aTransform : Transform;
function Start(){
    if(anObject != null)
        Debug.Log("I know about an object called " + anObject.name);
    if(aTransform != null)
        Debug.Log("I know about a transform at " + aTransform.position);
}

作为旁注 - GameObject.Find()真的很慢!如果你使用它太多,你的游戏将无法很好地运作。