我正在做一个需要像物理学一样需要重力的游戏。我试图找到特定层中每个RigidBody(运行脚本的人)的重心。 我有这个:
get-process -IncludeUserName |
where-object { $_.username -eq 'bot1' -and $_.name -ne 'code' -and
$_.name -ne 'outlook' } | stop-process -whatif
我朝着正确的方向前进吗? “ THELAYER”应该是什么?
答案 0 :(得分:0)
您可以尝试将所有刚体放入您的foreach内,测试它们是否与所需的层相匹配。
会是这样的:
RigidBody2D[] allRigidBodies = (RigidBody2D[]) GameObject.FindObjectsOfType(typeof(RigidBody2D));
foreach(Rigidbody2D body in allRigidBodies)
{
if(body.gameObject.layer==THE_LAYER)
// do stuff
}
答案 1 :(得分:0)
我认为没有内置函数。 我认为您可以做的是获取场景中的所有GameObject,然后循环获取所需的内容。例如:
GameObjects[] gameObjects=GameObject.FindObjectsOfType(typeof(GameObject)) as GameObject[];
您可以使用脚本忽略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()
函数中运行此代码。