我想改变底壁的位置。底壁是用于碰撞的3D立方体。这是立方体和属性的图片。
在图像的右侧,您可以看到名为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);
}
当我这样做时没有任何事情发生。我似乎无法做到这一点,对此的任何帮助都非常感激。
答案 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