C# 如何处理!=和| |在c中#
我是c#新手,一般来说并不擅长编码。努力学习。我想让这个游戏检测我的物体何时击中物体,看看它是否击中了不是地面或终点的物体,如果击中了,则重新加载场景。首先,我尝试:C# 如何处理!=和| |在c中#,c#,unity3d,C#,Unity3d,我是c#新手,一般来说并不擅长编码。努力学习。我想让这个游戏检测我的物体何时击中物体,看看它是否击中了不是地面或终点的物体,如果击中了,则重新加载场景。首先,我尝试: public class wallCollision : MonoBehaviour { public Rigidbody rb; public Vector3 spawn; void OnCollisionEnter(Collision col) { if (col.g
public class wallCollision : MonoBehaviour
{
public Rigidbody rb;
public Vector3 spawn;
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name != "Ground")
{
Scene scene = SceneManager.GetActiveScene();
SceneManager.LoadScene(scene.name);
}
}
}
它起作用了,所以我把它改成了这个,以检查它的光洁度
public class wallCollision : MonoBehaviour
{
public Rigidbody rb;
public Vector3 spawn;
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name != "Ground" || "Finish")
{
Scene scene = SceneManager.GetActiveScene();
SceneManager.LoadScene(scene.name);
}
}
}
它不起作用,所以我需要帮助。我想让它像这样思考:
若物体与任何物体相撞,而这不是地面或终点,那个么
我知道我可能犯了一些简单的错误,但我不知道该寻找什么来寻求帮助,所以如果有人能帮助我,我将不胜感激。提前谢谢。我需要你换成这样
col.gameObject.name != "Ground" && col.gameObject.name != "Finish"
不太确定,但是否存在.Equals()或类似的代码您必须将初始值与两个测试值进行比较:
if (col.gameObject.name != "Ground" && col.gameObject.name != "Finish")
{ }
另一种选择是使用集合和包含,但从性能角度看,这更糟糕:
if (!(new string[] { "Ground", "Finish" }.Contains(col.gameObject.name)))
{ }
我想您需要类似于col.gameObject.name!=“地面”&&col.gameObject.name!=“Finish”
总是会产生true
。用户提到或完成了,所以应该是==完成谢谢。第一个很有魅力!