gpt4 book ai didi

c# - 有没有办法找到特定层中的每个 RigidBody?

转载 作者:行者123 更新时间:2023-11-30 18:12:04 26 4
gpt4 key购买 nike

我正在制作一款需要像物理一样需要引力的游戏。我试图找到特定层中每个刚体(运行脚本的刚体除外)的质心。我有这个:

float AvrgMass;
float count = 0f;
Vector3 AvrgPoisition = Vector3.zero;

void Update(){

foreach (Rigidbody2D Body in "THELAYER")
{
AvrgPoisition += Body.transform.position;
AvrgMass += Body.mass;
count++;
}

AvrgPoissition -= ThisBody.transform.position;
AvrgMass -= ThisBody.mass;
AvrgPoisition /= count;
AvrgMass /= count;
}

我的方向是否正确? “THELAYER”应该是什么?

最佳答案

我认为没有内置函数。我认为你可以做的是获取场景中的所有游戏对象,然后循环获取你想要的东西。例如:

GameObjects[] gameObjects=GameObject.FindObjectsOfType(typeof(GameObject)) as GameObject[];

您可以使用脚本忽略游戏对象。

foreach(GameObject go in gameObjects){
if(go.name!="GameManager" && go.layer=="layerName"){
RigidBody2D rb2d=go.GetComponent<RigidBody2D>();
//Do some stuff
AvrgPoisition += rb2d.transform.position;
AvrgMass += rb2d.mass;
count++;
//Etc
}
}

不过要小心,您不想在 Update() 函数中运行此代码。

关于c# - 有没有办法找到特定层中的每个 RigidBody?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56047797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com