Unity5权威讲解之菜鸟读书笔记(三)
来源:互联网 发布:linux文件系统书籍 编辑:程序博客网 时间:2024/06/05 23:46
Unity5权威讲解之菜鸟读书笔记(三)
11. Rigidbody 组件是模拟碰撞等物理效果的重要组件,具备以下属性,如表所示。
是A物体的10倍”Drag用于移动的摩擦系数Angular Drag用于旋转的摩擦系数Use Gravity 是否模拟重力效果Is Kinematic如果勾选该属性,Unity 将不进行物理模拟使模型移动,而是通过Transtorm组件移动。也就是说,模型此时不受物理引擎的影响Interpolate 使用物理模拟时,模型如果发生停止暂停等现象,可以使用该属性使画面更为流畅。
Interpolate:使当前帧适应前一一顿的位置,使模型移动更自然
Extrapolate 推测下一顿的位置变化,使模型移动更自然Collision
Detection游戏中模型运动过快时,可能导致物理引擎来不及检测到碰撞。因此,该属性帮助引擎进行更细致的检测碰撞。检测顺序为Discrete- Continuous一Continuous DynamicFreere Position阳止模型义Y Z轴中某轴向上移动Freeze
Rotation阳止模型X、Y Z轴中以某一轴为基准旋转注意
将制作子弹所需的所有组件以及脚本不加到Bu let 游戏对象。需要注意,子弹模
型无需添加任何组件,因为它只是单纯的视觉模型。(父对象和子对象)
12.子弹脚本
using System.Collections;using System.Collections.Generic;using UnityEngine;public class BulletCtrl : MonoBehaviour { //子弹破坏力 public int damage = 20; public float speed = 100.0f;// Use this for initializationvoid Start () { GetComponent<Rigidbody>().AddForce(transform.forward * speed);}// Update is called once per framevoid Update () {}}
函数:GetComponent<Rigidbody>().AddForce(transform.forward * speed);
13.Collider组件
碰撞感知条件:1.发生碰撞的两个游戏对象都要添加Collider组件。
2.两个游戏对象至少一方有Rigidbody 组件。
处理速度最快的Collider:Sphere Collider
顺序: Sphere Collider > Capsule Collider >Box collider.
碰撞事件表
On Trigger函数会贯穿物体(在游戏中主要用作传感器例如角色开滑动门等)
On collision函数只会碰撞物体(用于子弹等。。)
一个简单的碰撞函数
子弹射在墙上消失。
using System.Collections;using System.Collections.Generic;using UnityEngine;public class WallCtrl : MonoBehaviour { private void OnCollisionEnter(Collision coll) { if (coll.collider.tag == "BULLET") { Destroy(coll.gameObject);//删除发生碰撞的物体 } } }
14.子弹发射逻辑
*制作子弹发射位置(FirePos)
*检测并处理发射事件
子弹发射函数。
using System.Collections;using System.Collections.Generic;using UnityEngine;public class FireCtrl : MonoBehaviour { public GameObject bullet; public Transform firePos;//子弹发射坐标。 // Use this for initializationvoid Start () { }// Update is called once per framevoid Update () {if(Input .GetMouseButtonDown(0)) { Fire(); }} void Fire() { CreateBullet(); } void CreateBullet() { Instantiate(bullet, firePos.position, firePos.rotation );//动态生成子弹预设 } }
15.播放音频的函数代码
private AudioSource source = null;public AudioClip fireSfxvoid start (){//获取组件后分配变量source = GetComponent <AudioSource>() ;}void fire (){source.PlayOneShot(fireSfx , 0.9f);}
阅读全文
0 0
- Unity5权威讲解之菜鸟读书笔记(三)
- Unity5权威讲解之菜鸟读书笔记(一)
- Unity5权威讲解之菜鸟读书笔记(二)
- Unity5权威讲解之菜鸟读书笔记(四)
- 《运算放大器权威指南》读书笔记(三)
- 《css权威指南》--读书笔记(三)
- Netty权威指南读书笔记(三)
- JavaScript: The Definitive Guide 权威指南,读书笔记(三)
- 读书笔记之postfix权威指南
- MySQL权威指南读书笔记(三) (转载)
- JAVA性能优化权威指南 读书笔记(三)
- HTTP权威指南读书笔记三:HTTP报文
- 【计算机网络】读书笔记之《HTTP权威指南》
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- 设计模式——单例模式(慢加载)
- ######保存角色,add表单页面Ajax传参给action,多个集合属性,【较为复杂的页面传参(封装ajax json参数)】:注意表单数据序列化,jquery遍历,json对象转String
- 《Python编程:从入门到实践 》[Eric Matthes著] 中文pdf非扫描版
- 思考2
- Mybatis学习笔记(十二)【一对多查询】
- Unity5权威讲解之菜鸟读书笔记(三)
- 201312-5 I'm stuck!
- linux下的关机命令和重启命令
- DeviceIoControl 直接从磁盘扇区读文件
- 我的学习记录31
- XML多个根节点提示“文档中根元素后面的标记必须格式正确”解决
- TCP带外数据OOB
- Ajax(原生js实现、jQuery实现、跨域)
- 《Python核心编程》 第3版 中文版pdf