unity3d - 通过其子对象移动游戏对象
问题描述
我想创造一些进化,比如“游戏”。我做了一些骨头、肌肉等。当我点击播放时,生物移动了,但是当我检查距离时它保持为 0。我发现所有单独的子元素都移动了,但包含的游戏对象仍然在同一位置.
使子对象的更改影响父对象的(正确)方法是什么?就像移动腿来移动人一样。
这个问题在我脑海中似乎很清楚,但在阅读了您的问题、评论和评论后,我需要更详细地阐述:
我了解步行动画等的基本概念(我认为)。但在这里我试图自己移动一个生物。起初纯粹是随机运动,希望以后通过神经网络。
在下面的示例屏幕截图中,您会看到一个生物,球体根据其重量着色,球体之间的光束是骨骼/肌肉。而且我的生物肢体确实通过使骨骼/肌肉搏动来移动……但是父对象的位置保持不变。洋红色线是父级的位置。我希望父级的位置会跟随其元素的中心。
解决方案
你的问题有点不清楚你到底在追求什么。但是,如果您希望孩子-父母的行为变得受尊重,孩子成为父母,父母成为孩子只是为了功能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);
}
推荐阅读
- llvm - x86_64 调用函数时调用约定不正确
- r - 如何在 R 中创建频率表
- reactjs - react-router-dom v6.0.2 中的延迟加载
- r - 有没有办法构建一个线图或箱线图来查看不同类别的增长轨迹?
- ios - iOS 上的 Firebase Auth Javascript SDK 9 和 Capacitor 3 Apple Sign-in 在 Ionic App Flow 推送之后返回 MissingOrInvalidNonce 而不是之前
- excel - 计算符合多个要求的项目
- go - 带有 vscode go 扩展的 vscode 中的 cgo 说“C.GoString”是“未由包 C 声明”
- datagridview - 读取到datagridview表单二进制文件
- c++ - SDL C++ 错误:使用临时作为左值 [-fpermissive]
- reactjs - 将组件包装在内存路由器中时反应测试错误