首页 > 解决方案 > 通过其子对象移动游戏对象

问题描述

我想创造一些进化,比如“游戏”。我做了一些骨头、肌肉等。当我点击播放时,生物移动了,但是当我检查距离时它保持为 0。我发现所有单独的子元素都移动了,但包含的游戏对象仍然在同一位置.

使子对象的更改影响父对象的(正确)方法是什么?就像移动腿来移动人一样。

这个问题在我脑海中似乎很清楚,但在阅读了您的问题、评论和评论后,我需要更详细地阐述:

我了解步行动画等的基本概念(我认为)。但在这里我试图自己移动一个生物。起初纯粹是随机运动,希望以后通过神经网络。

在下面的示例屏幕截图中,您会看到一个生物,球体根据其重量着色,球体之间的光束是骨骼/肌肉。而且我的生物肢体确实通过使骨骼/肌肉搏动来移动……但是父对象的位置保持不变。洋红色线是父级的位置。我希望父级的位置会跟随其元素的中心。

一个样本

标签: unity3d

解决方案


你的问题有点不清楚你到底在追求什么。但是,如果您希望孩子-父母的行为变得受尊重,孩子成为父母,父母成为孩子只是为了功能A(),您可以简单地交换孩子和父母的关系A()

举个例子,

void A()
{
   child.transform.SetParent(parent.transform.parent);
   parent.transform.SetParent(child.transform);
   
   ... // your A function
   
   parent.transform.SetParent(child.transform.parent);
   child.transform.SetParent(parent.transfotm);
}

推荐阅读