操作X和Y属性Unity2D Javascript

操作X和Y属性Unity2D Javascript,javascript,unity3d,coordinates,Javascript,Unity3d,Coordinates,我不熟悉Unity和Javascript,我的新项目正在使用这两种语言,我的问题是:为什么仅仅访问和操作x和y值就这么困难?我的一生都在用闪光灯和回忆美好的日子,那时人们可以简单地 trace(mc.x); 及 但是从我所做的研究来看,一个人甚至不能在不输入一个乏味的文本的情况下访问一个游戏对象 GameObject.Find("mc") 这只是为了访问对象!至于找到物体的位置,甚至将物体移动到某个点,我都不知道。我试着在网上找到答案,但什么也找不到 是的,我知道一个人可以通过 GameOb

我不熟悉Unity和Javascript,我的新项目正在使用这两种语言,我的问题是:为什么仅仅访问和操作x和y值就这么困难?我的一生都在用闪光灯和回忆美好的日子,那时人们可以简单地

trace(mc.x);

但是从我所做的研究来看,一个人甚至不能在不输入一个乏味的文本的情况下访问一个游戏对象

GameObject.Find("mc")
这只是为了访问对象!至于找到物体的位置,甚至将物体移动到某个点,我都不知道。我试着在网上找到答案,但什么也找不到

是的,我知道一个人可以通过

GameObject.Find("mc").transform.Translate(1,0,0);
但即使是这样,与简单的

mc.x++;

谢谢您的时间。

听起来您可能需要进一步了解脚本类中的任何公共游戏对象字段(只要它们扩展了组件,甚至更好的MonoBehavior),可以通过在Inspector窗格中拖放对象来填充对另一个游戏对象的引用。然后,可以像正常值一样引用变量

游戏对象本身并不是特别有用,但您可以使用GetComponent()在这些对象上查找所需的部分,如变换、渲染器、刚体或您自己的组件类。还可以创建具有所需特定组件子类型的公共字段,并直接引用它们

例如:

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()真的很慢!如果你过多地使用它,你的游戏将不会表现得很好。

听起来你可能需要了解更多关于脚本类中任何公共游戏对象字段的信息(只要它们扩展了组件,甚至更好的MonoBehavior),可以通过在Inspector窗格中拖放对象来填充对另一个游戏对象的引用。然后,可以像正常值一样引用变量

游戏对象本身并不是特别有用,但您可以使用GetComponent()在这些对象上查找所需的部分,如变换、渲染器、刚体或您自己的组件类。还可以创建具有所需特定组件子类型的公共字段,并直接引用它们

例如:

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()真的很慢!如果你用得太多,你的游戏就不会玩得很好。

AS3与C相比是一种非常弱的类型化语言。上面的代码是正确的,但是唯一的“捷径”可能是创建一个存储“mc”Transform的转换变量,然后执行mc.Transform.translate等操作。与C#相比,AS3是一种非常弱类型的语言。上面的代码是正确的,但是唯一的“快捷方式”可能是创建一个存储“mc”Transform的转换变量,然后执行mc.Transform.translate等。谢谢,这是非常有用的。然而,我试图解决的一个主要问题是如何分配对象坐标值,正如我前面所说的。例如,沿着mc.x=10线的某个东西;你知道我该怎么做吗?我找了好一阵子才找到答案,觉得自己快要发疯了。除此之外,您肯定已经回答了我的问题Gabriel object.transform.position.x=。。。?你可以通过这个属性赋值吗?或者在JavaScript中你可以直接给坐标赋值
transform.position.x+=1。在C#中,必须构造一个向量3并将其分配给属性,如
transform.position=transform.position+new Vector3(1,0,0)谢谢,这是非常有用的。然而,我试图解决的一个主要问题是如何分配对象坐标值,正如我前面所说的。例如,沿着mc.x=10线的某个东西;你知道我该怎么做吗?我找了好一阵子才找到答案,觉得自己快要发疯了。除此之外,您肯定已经回答了我的问题Gabriel object.transform.position.x=。。。?你可以通过这个属性赋值吗?或者在JavaScript中你可以直接给坐标赋值
transform.position.x+=1。在C#中,必须构造一个向量3并将其分配给属性,如
transform.position=transform.position+new Vector3(1,0,0)