Notifications
Article
position与localPosition
Published 12 days ago
15
0
2020年01月08日
position是根据世界原点为中心
localPosition是根据父节点为中心,如果没有父节点,localPosition和position是没有区别的
在Unity中无法对transform.position直接赋值
transform.position.x=1;//错误
编译器显示,无法修改其返回值,因为它不是变量
解释:
Vector3是一个结构体,而position是一个自动实现的属性
在C#中,结构体是值类型的,值类型在通过方法传递的时候,所传递的只是值的副本。
C#的属性可以说是两个分别名为get 和set的方法
而当我们写出形如transform.position.x = 1;这样的代码时,是在通过get方法得到position,然后修改position的x字段的值。但是,由于position是结构体类型的,get得到的也只是position的一个副本,而对这个副本所作出的任何修改,都对原positon没有任何影响,因此这样的修改是毫无意义的。编译器会禁止这样的修改操作。
正确的写法因该是
transform.localPosition = new Vector3(x, y ,z);
Tags:
关尔
Unity - Student
10
Comments