【发布时间】:2020-02-25 14:27:53
【问题描述】:
在 unity 3d 中,我创建了一个 Empty GameObject,当我用鼠标单击时会实例化一个简单的 3d 模型(从搅拌机导入的 3d 模型)。
我编写了一个简单的脚本,可以使用来移动 EmptyGameObject
transform.Translate(speed * Time.deltaTime, 0, 0);
但是当我运行项目时,只有空游戏对象在移动,但我需要将 3d 模型移动到 x asix。我该如何解决这个问题?感谢您的帮助。
移动脚本(放在 EmptyGameObject 上):
public float speed = 0f;
// Start is called before the first frame update
void Start()
{
speed = 0f;
}
// Update is called once per frame
void Update()
{
transform.Translate(speed * Time.deltaTime, 0, 0);
if (Input.GetMouseButtonDown(0)) {
speed += speed + 0.5f;
}
}
实例化对象的脚本:
public GameObject model;
public GameObject model1;
public int counter = 0;
void Start(){
model= Instantiate(model, transform.position, Quaternion.identity); //spawn model
}
void Update(){
if (Input.GetMouseButtonDown(0)) {
ChangeModel();
}
}
void ChangeModel(){
counter++;
switch (counter) {
case 1:
Destroy(model);
Destroy(model1);
model = (GameObject) Instantiate(model, transform.position, Quaternion.identity);
break;
case 2:
Destroy(model);
model1= (GameObject) Instantiate(model1, transform.position, Quaternion.identity);
counter =0;
break;
}
}
【问题讨论】:
-
如果模型是您的空游戏对象的子对象,它将随之移动
-
@BugFinder 如何通过脚本将模型设置为子模型?
-
您可以设置父级,也可以将其作为实例化的一部分..
-
您是想移动子对象还是只是将它们一起移动?
-
@UgurTufekci 是的,我需要将它们一起移动,但现在只有 EmptyGameObject 移动..