gpt4 book ai didi

c# - Unity C# GameObject 与另一个 GameObject 发生碰撞

转载 作者:行者123 更新时间:2023-11-30 17:04:54 27 4
gpt4 key购买 nike

我有一个名为 trigger 的无敌 GameObject,当我的 Hero 与它碰撞时,一盏枝形吊灯会掉落。我想给枝形吊灯一个 Rigidbody,这样它就会掉落,您可以与它碰撞并使用它。

如果你能向我解释碰撞是如何工作的,并展示如果 gameObject 碰撞时如何做某事,那在 Unity 中仍然很酷。

using UnityEngine;
using System.Collections;

public class Collider : MonoBehaviour {
public GameObject chandelier;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

}

//When my hero collides with trigger go to the fall function
void OnTriggerEnter (Collider other) {

if (other.tag == "Trigger")
{
fall();
}
}

//Add Rigidbody to the GameObject called chandelier
void fall ()
{
chandelier.rigidbody.AddForce(1, 1, 1);
}
}

最佳答案

要使碰撞起作用,至少一个碰撞游戏对象必须附加一个刚体,因为您使用 OnTriggerEnter 方法,所以以下设置应该起作用:

第一个对象:

-collider(标记为触发器)

-刚体(标记为运动学)

第二个对象

-collider(标记为触发器)

然后当物体发生碰撞时,“OnTriggerEnter”方法将被调用,您可以添加物理刚体到第二个对象,请注意你不能像你在帖子中提到的那样添加刚体

// This will cause to Exception if there is no rigidbody attached
chandelier.rigidbody.AddForce(1,1,1);

所以基本上你必须选择:

-通过 Unity 编辑器为您的游戏对象添加一个刚体并将其设置为运动学,然后在您的碰撞方法中删除“Is kinematic”标志,如下所示:

rigidbody.isKinematic = false;

-使用以下代码在碰撞后添加刚体:

gameObject.AddComponent< Rigidbody >();

然后你可以添加所需的力,或者如果你只想让它下落,只需将重力添加到刚体:

rigidbody.useGravity = true;

关于c# - Unity C# GameObject 与另一个 GameObject 发生碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16944512/

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