unity代码示例和碰撞检测
来源:互联网 发布:3d实景地图 知乎 编辑:程序博客网 时间:2024/06/04 19:26
1.[AddComponentMenu("MyGame/Player")] //在Component菜单中加入“MyGame/Player”选项
2.Time.deltaTime表示每帧的经过时间,那些需要每帧做增减变动的数值都需要乘上Time.deltaTime
3.MonoBehaviour的派生类不能使用构造函数初始化
4.unity的游戏体只能使用Instantiate函数实例化,不能使用new
5.
6.OnTriggerEnter函数触发条件:首先两个物体都要加碰撞体,被碰撞的物体必须勾选Is Trigger使其监测触发(不要加刚体),负责碰撞的物体必须加上刚体来触发被碰撞物体(加上刚体才拥有了触发别人的作用,不要勾选Is Trigger)。
或者负责碰撞的物体勾选Is Trigger使其监测触发(不要加刚体),然后被碰撞的物体加上刚体。(不要勾选Is Trigger)
7.OnCollisionEnter(碰撞瞬间)函数和OnCollisionExit(离开)调用条件:
1.首先两个物体都要加碰撞体,
且Is Trigger(因为勾选了它,则碰撞失效)都必须勾掉
另外:刚体碰非刚体会碰撞(这里碰撞指的是调用碰撞函数),非刚体碰刚体不会碰撞(详细来说就是:运动中的刚体碰非刚体,则会调用被撞物体和撞物体的OnCollisionEnter系列函数)
OnCollisionStay(接触)函数调用条件:两个满足条件的物体挨着的时候就会调用OnCollisionStay
8.Is Trigger和Is Kinematic属性详解
Is Trigger:选中Is Trigger开启触发器(触发器的范围则是碰撞的范围),则碰撞属性失效了
Is Kinematic:选中Is Kinematic开启运动学状态(一切物体保持静止或保持匀速向前运动,除非有外力影响它的状态,这里的运动学状态指的是匀速向前运动),如选中,该物体不会受到外力,但是需要注意的是碰撞还在(碰撞不属于刚体组件,它是在碰撞体组件里)
注:1.角色控制器(即Character Controller)不发力不受力但是可以被由代码施加的力推动,,如果加Rigidbody组件,则这两个会冲突(这是unity中非自然的一部分)
2.运动学刚体发力不受力
3.刚体发力且受力
4.有时候碰撞可以产生反作用力,比如角色控制器可以通过碰撞给一个运动中的刚体反作用力
5.刚体静止时,则会进入休眠状态,休眠状态中刚体属性不生效,比如阻力,重力,摩擦力。如何激活刚体使其唤醒:给它力,让它平移等。(这是unity中非自然的一部分)
6.现实生活中,先有往某个方向的力才会有反方向的阻力,而且一般情况下阻力比该方向的力小,但在unity中,阻力是可以事先设置的,当阻力大于作用力时,物体会向阻力的方向运动,是不是很反自然?(这是unity中非自然的一部分)
7. 如果两个物体都不是刚体,都有碰撞体,结果穿透,都不会调用碰撞函数
8.物体1是动力学刚体且有碰撞体,物体2没有刚体有碰撞体,结果穿透,都不会调用碰撞函数
9.物体1是动力学刚体且有碰撞体,物体2有刚体有碰撞体,结果碰了,调用碰撞函数(不同情况调用不同函数。比如速度不同,调用函数不同[比如速度过快会穿过去])
表格:(针对于OnCollisionEnter系列函数,默认都有碰撞体,重力都取消了,表格列出的现象可能片面)
Cube
Sphere
现象
刚体
刚体
动力学
运动状态
刚体
刚体
动力学
运动状态
有
有
有
有
有
有
互相穿透不干扰
有
有
有
有
有
-
互相穿透不干扰
有
有
有
有
-
有
碰撞检测,且Cube不会被撞开
有
有
有
有
-
-
碰撞检测,且Cube不会被撞开
有
有
有
-
-
有
互相穿透不干扰
有
有
有
-
-
-
互相穿透不干扰
有
-
有
有
有
-
碰撞检测,且Sphere不会被撞开
有
-
有
有
-
有
碰撞检测,且相互撞开
有
-
有
有
-
-
碰撞检测,且Sphere随Cube动
有
-
有
-
-
有
碰撞检测,且Sphere不会被撞开
有
-
有
-
-
-
碰撞检测,且Sphere不会被撞开
有
有
-
有
-
有
碰撞检测,且Cube不会被撞开
有
有
-
有
-
-
嵌入时,碰撞检测,且Cube不会被撞开
有
有
-
-
-
有
互相穿透不干扰
有
有
-
-
-
-
嵌入时,互不干扰
有
-
-
有
-
-
嵌入时,碰撞检测,互相撞开
有
-
-
-
-
有
碰撞检测,且Cube随Sphere动
有
-
-
-
-
-
嵌入时,碰撞检测,Sphere不会被撞开
-
-
有
-
-
有
互相穿透不干扰
-
-
有
-
-
-
互相穿透不干扰
-
-
-
-
-
-
互相穿透不干扰
9.this.transform.parent = surface.transform;//改变该物体(this.transform)的父级,父物体为surface.transform处的物体
1 0
- unity代码示例和碰撞检测
- Unity 碰撞检测和射线
- Unity触发检测和碰撞检测
- unity 碰撞和检测的区别
- unity碰撞检测和触发信息
- Unity碰撞检测
- Unity 碰撞检测
- [Unity-4] 碰撞检测
- Unity Layout碰撞检测
- Unity 碰撞检测、射线
- Unity碰撞检测
- Unity碰撞检测。
- Unity 物理碰撞检测
- unity中的碰撞检测
- Unity 射线检测碰撞
- Unity UI检测碰撞
- unity中的碰撞检测
- unity之碰撞检测
- 主键 外键
- mysql:如何将命令行结果数据输出到文本文件
- memcached 缓存命中率
- Java面试题—equals和==的区别
- 类似直播App的向右滑动清屏功能
- unity代码示例和碰撞检测
- android 快速开发二、工具类之Activity管理器
- ARM JATG/SWD电路总结
- POJ3273——Monthly Expense
- 关于使用AsyncTaskLoader的使用
- CodeForces 75D
- shell脚本不使用if语句进行选择的脚本
- CSDN-markdown编辑器语法格式留存
- Scala可变长度参数