繁体   English   中英

AddForce 方法是否可能仅影响我在统一 3D 中调用它的 Object?

[英]Is it Possible Have AddForce Method Affect Only The Object i am calling it from in unity 3D?

当我使用AddForce()方法时,它会影响我指定的力矢量方向上的所有游戏对象,这有点像物理在现实生活中的工作方式,但我不希望我的游戏使用它,我希望它有效果我只在 object 上调用它(例如ExampleGameObject.GetComponent<Rigidbody>().AddForce();

我希望它对“ExampleGameObject”产生影响只是我希望我的问题很清楚,在此先感谢。

yourObject.GetComponent<RigidBody>().AddForce(yourForce);

如果“yourObject”有孩子,这些孩子将与“yourObject”一起移动。 如果是这种情况,您不应该使用“yourObject”作为父级,或者如果确实有必要,您可以执行类似的操作:

GameObject[] yourChildren;  
Transform[] yourChildrenPos;  
yourChildren = yourObject.GetComponentsInChildren<Transform>().gameObject; //There is for sure a much better syntax for it, but i forgot it.  
yourChildrenPos = yourObject.GetComponentsInChildren<Transform>();

for (int i = 0; i > yourChildren.Length; i ++)
{
     yourChildren[i].transform.position = yourChildrenPos[i].position;
}

您只需在每次移动您的对象之前分配您的ChildrenPos,并且每次移动您的对象后,go 都会通过 for 循环。 您可以轻松地为此创建一个方法。 这不会很有效,并且会在大型项目中花费大量的处理能力,但如果项目不是那么大,这应该可以完成工作。 我希望我有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM