- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的需要一些关于我的游戏对象的帮助。
我正在开发一款游戏,我想要一个拾取元素来产生物理力爆炸来炸毁敌人。我做了一个简单的炸弹对象来测试这个想法。我添加了一个简单的代码,使用一个循环来收集其半径内的所有碰撞器,然后将力添加到这些碰撞器。现在代码可以正常工作,但并非我所有的游戏对象都能正确 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.
我已经尝试过:
下面添加了“爆炸代码”,但是,我认为问题不在代码中。我将代码添加到场景的主摄像机,并添加了一个简单的球体作为“炸弹”游戏对象。
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/
我正在制作一款需要像物理一样需要引力的游戏。我试图找到特定层中每个刚体(运行脚本的刚体除外)的质心。我有这个: float AvrgMass; float count = 0f; Vector3 Av
我正在使用 c# mono 和 unity3d 4.1.2。 我有以下脚本: using UnityEngine; using System.Collections; public class Pla
我是 JME3 新手,在理解 BetterCharacterControl 时遇到一些问题。 当我尝试将 BetterCharacterControl 应用于框时,它总是从框的上部而不是中心“扩展”。
我无法在 OgreBulletDynamics 包装器中查找函数。我正在尝试使用 bullet wiki 中的示例检测 2 个刚体之间的碰撞 http://bulletphysics.org/medi
所以,我正在尝试进行无限跳线,但出于某种原因,OnTriggerEnter2D 函数 rb2D 给了我一个错误,即使我已尽一切努力使其正常工作(至少我是这么认为的,因为每次我这样做时它都会起作用。)错
我在对池化对象应用相对力时遇到问题。 我有一个对象池,里面有我所有的项目符号都可以重复使用。子弹在不使用时被禁用。 当玩家射击他的武器时,从对象池中拉出一颗子弹,并按以下顺序对子弹执行以下操作: 设置
我正在尝试使用Rigidbody 对主要 FPS 角色的 Action 进行编程。 相机和 ZQSD 位移效果很好,但移动时跳跃非常受限: 固定跳跃:Y(分钟)= 1; Y(最大)= 2.7; 移动跳
我目前正在开发一款在 Unity 中使用点击移动的游戏。当我点击 map 上的一个点时,我将鼠标的点击设置为目的地,然后使用游戏对象上的刚体通过 RigidBody.MovePosition() 移动
我有一个 THREE.js 场景,其中对象使用 CANNON.js 应用了物理学。 RigidBody 像这样初始化: let shape = new CANNON.Box(new CANNON.Ve
我有一个具有正确物理和碰撞功能的刚体。但是,我想让这个对象“不可见”,这样它就不会在物理(步进模拟)中被考虑,但仍然会产生正确的碰撞。当然,我不能在我的 3D 场景中渲染它,但我还需要以某种方式使其在
当它尝试向我的播放器添加一个力时,它会移动,然后被传送回去。我需要使用 RPC 吗? 新代码: void OnTriggerEnter(Collider other) { if (other.
我正在学习 Unity,我正在尝试从 XNA 在 Unity 中重新创建我的游戏。 我正在关注这个 Tutorial Playlist来自 unity on youtube,我使用 GameManag
我有一个附有Rigidbody的立方体,每当我按下播放按钮时,它就会轻微滑动。如果我将其放置一段时间,它就会滑到屏幕的另一侧。 有人知道如何在不使用“卡住位置”的情况下解决这个问题吗?我不知道我的项目
我真的需要一些关于我的游戏对象的帮助。 我正在开发一款游戏,我想要一个拾取元素来产生物理力爆炸来炸毁敌人。我做了一个简单的炸弹对象来测试这个想法。我添加了一个简单的代码,使用一个循环来收集其半径内的所
我想让我的 Angular 色跳起来,但我不明白他为什么不跳。我的代码使用力和 Rigidbody2D。我是 Unity 的新手,找不到任何答案。请帮忙? 我的物理代码: var trump; fun
我正在使用这个: void Update(){ if(leftJoystick){ rb.AddRelativeForce(0, 0, 400f, ForceMode.Impu
我是 Unity 新手。 我有 Rigidbody2D,我想为我的播放器添加常量 velocity。我想知道在 Start 或 Update (或 FixedUpate ) 当我在开始时应用速度时一切
目标:我正在开发一款非常依赖 Unity 的 2D 物理的回合制游戏。对我来说重要的是所有 body 一停止移动就进入休眠状态,因为我在等待它在下一轮开始。 问题:不幸的是, body 从不 slee
我正在创建一个 THREE.Mesh使用 THREE.JSONLoader 的对象像这样的对象: // Create castle. loader.load('/Meshes/CastleTower.
我是一名优秀的程序员,十分优秀!