gpt4 book ai didi

c# - 添加 RigidBody 后,Collider 如何从 GameObject 掉落?

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

我真的需要一些关于我的游戏对象的帮助。

我正在开发一款游戏,我想要一个拾取元素来产生物理力爆炸来炸毁敌人。我做了一个简单的炸弹对象来测试这个想法。我添加了一个简单的代码,使用一个循环来收集其半径内的所有碰撞器,然后将力添加到这些碰撞器。现在代码可以正常工作,但并非我所有的游戏对象都能正确 react 。

我调查了这是为什么,我注意到只要我向对象添加 RigidBody 组件,我的 Collider 就会一直远离 GameObject。 AddForce 影响需要 RigidBody。当我移除 rb 时,对撞机保持原位,但对象不会对物理力使用react。

我添加了一些图片来说明我的意思:

Image of the Collider of the leaf sinking away..

Example image of objects which DO react to the AddForce.

我已经尝试过:

  • 从 react 立方体和石头中复制/粘贴所有组件设置游戏对象到叶游戏对象,同时禁用所有其他代码比如c#脚本。 Collider & RB 不会掉落地板但是当物理力击中对撞机时被吹走游戏对象保持其位置。
    • 尝试不同的游戏对象/碰撞器类型。
    • 去除水。
    • 玩弄炸弹的威力/半径。
    • 编辑了 GameObject 的“Tag”和“Layerstyle”。

下面添加了“爆炸代码”,但是,我认为问题不在代码中。我将代码添加到场景的主摄像机,并添加了一个简单的球体作为“炸弹”游戏对象。


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Explosion : MonoBehaviour
{
public GameObject bomb; //set the position of the explosion
public float power = 10.0f;
public float radius = 10.0f;
public float upForce = 0.0f;

private void FixedUpdate()
{
if (Input.GetKeyDown("space"))
{
print("space key was pressed");
Invoke("Detonate", 1);
}
}

void Detonate()
{
Vector3 explosionPosition = bomb.transform.position; //set the position of our explosion to the position of the bomb.
Collider[] colliders = Physics.OverlapSphere(explosionPosition, radius); //collects all colliders within the radius.
foreach (Collider hit in colliders) { //for each individual collider the following code is ran.

Rigidbody rb = hit.GetComponent<Rigidbody>(); //declare'rb' rigidbody. Get rb component from each collider
if (rb != null)
{
print("BOOM!");
rb.AddExplosionForce(power, explosionPosition, radius, upForce, ForceMode.Impulse); //add force to each collider
}
}

}
}


如何让叶子的刚体、碰撞体和游戏对象像标准 3D 对象“立方体”一样相互固定,以便我可以像其他模型一样用物理力将它们吹走?

感谢您抽出宝贵时间,我已经尝试了好几个小时并在 Internet 上四处寻找,但似乎找不到任何解决方案。

最佳答案

如果在停止模式下添加刚体并按下播放会怎样?它是否以类似的方式移动?如果您的对撞机彼此相交,这可能并且预计会发生。一旦你添加了一个刚体,它们就会发现自己陷入了严重的碰撞之中。

如果不想修改场景,可以在project settings/physics中摆弄collision matrix

关于c# - 添加 RigidBody 后,Collider 如何从 GameObject 掉落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54494531/

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