Unity Cube gameobject变换位置不变

时间:2016-04-24 17:15:24

标签: c# unity3d scripting

我想改变底壁的位置。底壁是用于碰撞的3D立方体。这是立方体和属性的图片。

enter image description here

在图像的右侧,您可以看到名为transform的属性栏。我想通过脚本访问它并更改位置。这是我试图用的代码。

    void Start () {


    GameObject bottomWall = GameObject.Find("Bottom");
    Bottom bottomScript = bottomWall.GetComponent<Bottom>();
    bottomScript.wallPos.y = -Camera.main.orthographicSize * 1000;
    bottomWall.transform.position.Set(1000, 100, 1000);
    bottomWall.GetComponent<Transform>().position.Set(100, 100, 100);
}

当我这样做时没有任何事情发生。我似乎无法做到这一点,对此的任何帮助都非常感激。

2 个答案:

答案 0 :(得分:4)

from PyQt4.QtCore import * from PyQt4.QtGui import * import sys class MyWindow(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) self.label = QLabel("Hi, I'm a window", self) self.button = QPushButton("&Quit", self) self.connect(self.button, SIGNAL("clicked()"), QCoreApplication.instance(), SLOT("quit()")) lay = QVBoxLayout() lay.addWidget(self.label) lay.addWidget(self.button) self.setLayout(lay) def closeEvent(self, event): print "Closing the app" self.deleteLater() if __name__ == '__main__': app = QApplication(sys.argv) mw = MyWindow() mw.show() sys.exit(app.exec_()) 会返回Transform.position副本,而不是引用。因此,修改副本不会影响原始Vector3位置。

Vector3

Replace bottomWall.transform.position.Set(1000, 100, 1000);

与您的问题无关

由于底部 Walls 的孩子,因此最好在bottomWall.transform.position = new Vector3(100, 100, 100); 函数中使用Walls/Button,因为这样会告诉Unity仅适用于 Walls 层次结构下的底部 GameObject。当场景中有太多GameObjects时,这很快。

因此请使用Find

答案 1 :(得分:1)

是另一个游戏对象的子对象吗?可以尝试gameObject.transform.localPosition