Unity物理引擎-刚体碰撞

刚体组件:

为对象添加刚体属性并加以某些参数设置可以模拟显示世界的物理效果:

添加:

就是选中物体,在Component中选择物理,选中其中的rigidbody

此时在场景中的被添加了刚体属性的物体就可以按照重力下落了。

具体设置在监视器中设置:

可以设置使用恒力作用于物体:

添加以下组件:

同样可以使用脚本来进行设置:

通常是在FixedUpdate()函数中设置刚体的受力,作为一个固定时间刷新的内容:

C#脚本如下:

1 void FixedUpdate()
2     {
3         rigidbody.AddForce(0.0F,10.0F,0.0F);
4     }

具体设置可以查找Rigidbody文档等

刚体碰撞和消息传递:

创建一个自带的物体的时候会自动设置碰撞其,譬如平面物体的网格碰撞器,球形的碰撞器等等,这些东西会在添加物理属性之后在碰撞发生是时候进行某些反应

刚体碰撞中的消息传递:

在OnCollisionEnter函数中就可以设置进入碰撞后的逻辑

如:C#

void OnCollisionEnter(Collider collsion)
    {
        print(collsion.gameObject);
    }

此处collison变量是被碰撞的碰撞体

打印出的是被碰撞的物体类型,

说明在发生碰撞的时候函数接受到了消息并且做出了反应;

触发碰撞和消息传递:

每一个碰撞器都有一个这个是否触发的选项,此选项被设置后再次播放场景的时候就不会产生碰撞效果,但是会捕捉到碰撞消息并发送给一个名为OnTriggerEnter的函数执行

就像这样:

void OnTriggerEnter(Collider other)
    {
        print(other.gameObject);
    }

图示:

可以看到左下角输出了所有经过碰撞到的物体 ,主要优势是可以在不影响物体运动的情况下进行碰撞检测;

以上。

时间: 2024-10-11 11:01:23

Unity物理引擎-刚体碰撞的相关文章

[原]Unity3D深入浅出 - 物理引擎之碰撞体(Colliders)

通常Colliders会与Rigidbody一起使用,没有添加碰撞体的刚体会彼此相互穿过. 常用碰撞体有以下几种: Box Collider:盒子碰撞体,是一个立方体外形的碰撞体,可调整为不同大小的长方体,一般可用作门,墙及平台等,也可用于交通工具的外壳.最适合的是使用在盒子和箱子上. Is Trigger:触发器,勾选后可用于触发事件,且将被物理引擎所忽略. Material:材质,采用不同的Physics Material决定了碰撞体与其他对象的交互形式. Center:碰撞体在对象局部坐标

Unity 物理引擎实现匀速圆周运动

摘要 本文主要讲述如何利用Unity物理引擎实现匀速圆周运动. 前言 首先,我们可以利用Unity API,Transform.RotateAround来实现匀速圆周运动.但是这个实现,我觉得不过瘾,因为你只是了解一个API,并没有学到任何其他的知识.接下讲一点有意思东西. 物理知识 1.定义: 质点沿圆周运动,如果在任意相等的时间里通过的圆弧长度都相等,这种运动就叫做"匀速圆周运动",亦称"匀速率圆周运动".因为物体作圆周运动时速率不变,但速度方向随时发生变化.所

【Unity 3D】学习笔记三十六:物理引擎——刚体

物理引擎就是游戏中模拟真是的物理效果.如两个物体发生碰撞,物体自由落体等.在unity中使用的是NVIDIA的physX,它渲染的游戏画面很逼真. 刚体 刚体是一个很很中要的组件. 默认情况下,新创的物体是不具备物理效果的,而刚体组件能够给物体加入一些常见的物理属性.比方说:质量.摩擦力.碰撞等. 假设对象加入了刚体组件.那么它将感应物理引擎中的一切物理效果. 简单的使用下 首先穿件一个游戏对象,接着在hierarchy视图中选择创建的游戏对象.然后在unity导航菜单条中选择component

UIDynamic仿物理引擎-浮动碰撞效果-b

最近产品提了个需求(电商的APP-两鲜),需要在APP背景加上几个水果图案在那里无规则缓慢游荡...模仿 天天果园 APP的.好吧,那我就在网上找了很多文章,总结一下写个demo.效果如下: Mou icon 这里用到的是UIDynamic这个类. UIDynamic简介 一.简介 注意:UIKit动力学的引入,并不是为了替代CA或者UIView动画,在绝大多数情况下CA或者UIView动画仍然是最有方案,只有在需要引入逼真的交互设计的时候,才需要使用UIKit动力学它是作为现有交互设计和实现的

Cocos2d-x 物理引擎及碰撞

基础知识: 1 #ifndef __HELLOWORLD_SCENE_H__ 2 #define __HELLOWORLD_SCENE_H__ 3 4 #include "cocos2d.h" 5 6 class HelloWorld : public cocos2d::Layer 7 { 8 private: 9 Size visibleSize; 10 public: 11 // there's no 'id' in cpp, so we recommend returning t

实例介绍Cocos2d-x中Box2D物理引擎:碰撞检測

在Box2D中碰撞事件通过实现b2ContactListener类函数实现,b2ContactListener是Box2D提供的抽象类,它的抽象函数:virtual void BeginContact(b2Contact* contact).两个物体開始接触时会响应,但仅仅调用一次. virtual void EndContact(b2Contact* contact).分离时响应. 但仅仅调用一次. virtual void PreSolve(b2Contact* contact, const

Unity物理引擎-关节

关节主要分为 1,hinge joint 铰链关节 可以将物体一端通过关节固定在某一处: 可以用作门的折页等效果: 此时可以通过一些固定力使他固定在此处进行运动,譬如碰撞,旋转,例如: 使用其他物体碰撞他 其他属性可以限制最大受力和扭矩等,也可以指定旋转范围 主要属性如下 2,FixedJoint: 固定关节主要起到固定刚体的作用,可以将刚体限制在空间中的某个位置,碰撞不反应: 也可以将两个物体连接到一起起到固定两个物体的作用 例如下面,上方是一个添加了铰链关节的刚体,下方的固定关节链接体是上方

libgdx学习记录21——Box2d物理引擎之碰撞Contact、冲量Impulse、关节Joint

Box2d中,物体可以接受力(Force).冲量(Impulse)和扭矩(Torque).这些物理元素都能改变物体的运动形式,并且默认都会唤醒物体,当然只是针对动态物体. 力是一个持久的效果,通过Box2d内置的积分器实现运动变化. 冲量是一个瞬时效果,能立马改变其效果. 主要函数: body.applyLinearImpulse( Vector2 impulse, Vector2 position, boolean wakeup ) 第一个参数表示冲量,包含x和y方向的大小. 第二个参数表示施

cocos2d-x之物理引擎之碰撞监测

#include "HelloWorldScene.h" USING_NS_CC; #define RED_BIT_MASK    0b0100 #define GREEN_BIT_MASK  0b0010 #define BLUE_BIT_MASK   0b0001 #define EDGE_BIT_MASK   0b1000 Scene* HelloWorld::createScene() { auto scene = Scene::createWithPhysics(); sce