分配多个刚体函数
Assign multiple Rigidbodies to function
我正在开发适用于特定葡萄酒盒的 Unity + Vuforia 应用程序。侧面有一个水龙头,当您单击它时,球体开始像液体一样从中掉落。我制作了一个脚本,只需点击一下水龙头即可为球体赋予重力。
[SerializeField]
private Rigidbody sphere;
public Collider tap;
void Start()
{
tap = GetComponent<Collider>();
}
void OnMouseDown()
{
if (sphere.useGravity == false)
{
Debug.Log("Flows");
sphere.useGravity = true;
sphere.isKinematic = false;
}
else if (sphere.useGravity == true)
{
Debug.Log("Stops");
sphere.useGravity = false;
sphere.isKinematic = true;
}
}
一个球体被分配给 sphere
变量,我想要的是让检查员有一个字段,我可以在其中输入我想要附加的球体数量,然后手动附加它们。而不是为每个领域创建一个变量。如果有其他方法,请告诉我。
总而言之:我想要几个刚体useGravity
一次点击。
您可以像 public List<RigidBody> bodies
那样制作一个刚体列表,但是您需要使用 bodies.Add(rb)
将所有球体分配到列表中 您要实现的效果是在 OnMouseDown()
函数被调用。它将使用 foreach
遍历列表
[SerializeField]
private List<Rigidbody> bodies;
public Collider tap;
void Start()
{
tap = GetComponent<Collider>();
}
void OnMouseDown()
{
if (sphere.useGravity == false)
{
foreach (Rigidbody body in bodies)
{
body.useGravity = false;
body.isKinematic = true;
}
}
}
我正在开发适用于特定葡萄酒盒的 Unity + Vuforia 应用程序。侧面有一个水龙头,当您单击它时,球体开始像液体一样从中掉落。我制作了一个脚本,只需点击一下水龙头即可为球体赋予重力。
[SerializeField]
private Rigidbody sphere;
public Collider tap;
void Start()
{
tap = GetComponent<Collider>();
}
void OnMouseDown()
{
if (sphere.useGravity == false)
{
Debug.Log("Flows");
sphere.useGravity = true;
sphere.isKinematic = false;
}
else if (sphere.useGravity == true)
{
Debug.Log("Stops");
sphere.useGravity = false;
sphere.isKinematic = true;
}
}
一个球体被分配给 sphere
变量,我想要的是让检查员有一个字段,我可以在其中输入我想要附加的球体数量,然后手动附加它们。而不是为每个领域创建一个变量。如果有其他方法,请告诉我。
总而言之:我想要几个刚体useGravity
一次点击。
您可以像 public List<RigidBody> bodies
那样制作一个刚体列表,但是您需要使用 bodies.Add(rb)
将所有球体分配到列表中 您要实现的效果是在 OnMouseDown()
函数被调用。它将使用 foreach
[SerializeField]
private List<Rigidbody> bodies;
public Collider tap;
void Start()
{
tap = GetComponent<Collider>();
}
void OnMouseDown()
{
if (sphere.useGravity == false)
{
foreach (Rigidbody body in bodies)
{
body.useGravity = false;
body.isKinematic = true;
}
}
}