unity碰撞组件、刚体组件

游戏导入标准资源包“Character Controllers”后可以为游戏对象添加 character(角色控制器)组件:

添加角色控制器组建以后可以控制游戏对象移动;

角色控制器组件因为与碰撞组件相互冲突,所以添加角色控制器组建后Collider组件就会消失。

默认在Unity中创建的模型是不具备接收物理引擎的,除非给模型添加刚体组件或角色控制器组件。

看下面代码:

 1 using UnityEngine;
 2 using System.Collections;
 3
 4 public class rigidbodyScript : MonoBehaviour
 5 {
 6
 7     // Use this for initialization
 8     void Start ()
 9     {
10
11     }
12
13     // Update is called once per frame
14     void Update ()
15     {
16
17     }
18
19     void OnControllerColliderHit (ControllerColliderHit hiter)
20     {
21         GameObject hit = hiter.collider.gameObject;
22         if (hit.rigidbody != null && !hit.rigidbody.isKinematic) {
23             if (hit.name != "Plan") {
24                 hit.rigidbody.AddForce (new Vector3 (hiter.moveDirection.x, 0f, hiter.moveDirection.z), ForceMode.Impulse);
25             }
26         }
27     }
28 }

看检视面板和层次面板:

场景中的四个 cube 均已被添加刚体组件,参数默认。上图中   数字1 处 三个组建是 添加角色控制器组件后自动添加的 组件 。

运行以后 按下 WASD控制sphere 前后左右移动,碰到cube 的时候为 cube 添加一个 力 ,可以把 他们推开。

时间: 2024-08-29 06:20:56

unity碰撞组件、刚体组件的相关文章

Unity物理引擎-刚体碰撞

刚体组件: 为对象添加刚体属性并加以某些参数设置可以模拟显示世界的物理效果: 添加: 就是选中物体,在Component中选择物理,选中其中的rigidbody 此时在场景中的被添加了刚体属性的物体就可以按照重力下落了. 具体设置在监视器中设置: 可以设置使用恒力作用于物体: 添加以下组件: 同样可以使用脚本来进行设置: 通常是在FixedUpdate()函数中设置刚体的受力,作为一个固定时间刷新的内容: C#脚本如下: 1 void FixedUpdate() 2 { 3 rigidbody.

关于Unity中的刚体和碰撞器的相关用法

1.创建一个3D工程 2.构造项目文件目录 3.保存场景为game_scene到文件夹scenes中 4.创建一个Plane平面类型的GameObject节点和一个Sphere球体类型的GameObject节点 5.给Plane贴上图片,Sphere贴上材质 6.运行,发现球在空中静止,因为没有添加受力体,也就是刚体组件Rigidbody,添加后运行,球从空中掉到平面上,前提是两者都已经有Collider碰撞器组件,否则只要一方没有Collider就会穿过彼此. Rigidbody组件属性 1.

Unity3D 中3D刚体组件的力

一般一个物体除了手动添加刚体受到重力作用外,还可以给该刚体添加一个其他的力. 这里就要涉及到一个恒定力(Constant Force)组件 首先要去掉物体的重力(因为重力是刚体组件中默认的一个向下的力)影响.然后在力组件中添加一些力去控制该物体.

Unity碰撞消息(OnCollisionXXXX)和触发消息(OnTriggerXXXX)的调用情境

MonoBehaviour中的消息非常多,一共有62个! 除了必须关注的脚本生命周期的一系列函数外,还有其他两组比较常混淆的消息:碰撞和触发. 按3D和2D物体区分,又分为碰撞:Collision.Collision2D.触发:Trigger.Trigger2D. 以3D物体为例做了如下实验,分别测试下OnColiisionXXXX碰撞消息和OnTriggerXXXX触发消息的调用情景. 实验模拟: 1.分别创建物体A 和 物体B,使物体A处于物体B上方 2.在物体A有刚体组件的情况下,对物体A

Delphi IdHttp组件+IdHttpServer组件实现文件下载服务

http://blog.csdn.net/xxkku521/article/details/16864759 Delphi IdHttp组件+IdHttpServer组件实现文件下载服务 2013-11-21 18:15 2624人阅读 评论(0) 收藏 举报  分类: DELPHI(10)  版权声明:本文为博主原创文章,未经博主允许不得转载. [delphi] view plain copy uses idhttp,IdHTTPServer; //idhttp组件提交下载请求 procedu

12 Django组件-form组件

知识预览 forms组件 forms组件 校验字段功能 针对一个实例:注册用户讲解. 模型:models.py class UserInfo(models.Model): name=models.CharField(max_length=32) pwd=models.CharField(max_length=32) email=models.EmailField() tel=models.CharField(max_length=32) 模板:register.html: <!DOCTYPE h

django第13天(auth组件,forms组件)

django第13天(auth组件,forms组件) auth组件 -auth组件 -auth是什么? -django内置的用户认证系统,可以快速的实现,登录,注销,修改密码.... -怎么用? -(1)先创建超级用户: -python3 manage.py createsuperuser -输入用户名,邮箱(可以不输入),密码,敲回车,这样就创建出一个超级用户 -也就是在auth_user这个表中插入了一条数据(密码是加密的,所以我不能手动插入) -(2)验证用户: -from django.

Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合

Django---FORM组件.FORM组件的字段,FORM组件校验流程,FORM组件的全局和局部钩子,FORM和Model的组合 一丶FORM的介绍 1.生成页面可用的HTML标签 2.对用户提交的数据进行校验 3.保留上次输入内容 二丶使用form组件实现注册功能 from django import forms # 导入forms组件 # 按照Django form组件的要求自己写一个类 class RegForm(forms.Form): # 继承Form name = forms.Ch

v-once指令、v-cloak指令、条件指令家族、原义指令、循环指令、todolist案例、实例成员-符号、实例成员-计算属性、实例成员-属性监听、监听的案例、局部组件、全局组件、组件交互(父传子、子传父)

v-once指令: v-once:单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改) <div id="app"> <input type="text" v-model="msg"> <!-- 一旦赋值,只可主动更改 --> <input type="text" v-model="msg" v-once> <p>{{ m