Unity5使用所遇难点及解决方案(基于与unity4的比较)(二.动作对象)
来源:互联网 发布:java趣味编程100例下载 编辑:程序博客网 时间:2024/06/05 20:17
一.碰撞器
作用:以物理方式对网格提供一种碰撞检测,同时也作为一种触发事件或反应的手段。
包括:capsule,sphere,box,mesh,wheel等。
mesh collider是一种不规则的碰撞器,是根据设定的mesh来构建碰撞器,优点在于能完美得契合对象,但是消耗很大。这种碰撞器可以在导入对象的时候,选中generate colliders,点击apply,就直接生成一个mesh collider在将来使用的实例对象中 ,而对于已经使用了的实例对象,可以点击revert来更新设置。(存在一些导入对象无法用这种方式来生成,原因未解。。但是可以直接给实例对象添加一个mesh collider组件,并指定相应的mesh即可)。
由于代价高昂以及绝大多数对象碰撞器需求很简单,所以多数情况采用box,capsule,sphere等简单规则的碰撞器来组合成复杂的形状来满足碰撞需求。
collider的另一个作用在于用做触发事件,如光标拾取等。
一个对象只能有一个碰撞器,这就需要使用层次结构,即一组各自带有碰撞器的对象,将其与实际对象放在一组,而之后进行对组的操作。
二.触发动画
var theparent:GameObject;var aniClip:AnimationClip;//AnimationClip 动画剪辑类 function OnMouseDown(){//鼠标点击触发事件 print(name+"picked");//name属性 使用该脚本对象的 //theparent.GetComponent.<Animation>().Play();//只有legacy有Animation组件 theparent.GetComponent.<Animation>().Play(aniClip.name);//需要指定动画剪辑的名字}//该段代码可以指定一个对象触发指定的动画,而触发方式是点击使用该脚本的对象。
三.声音音效
unity支持多种声音文件,包括
- .wav(WAV为微软公司(Microsoft)开发的一种声音文件格式,WAV是最接近无损的音乐格式,所以文件大小相对也比较大),.
- mp3(MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III),简称为MP3。它被设计用来大幅度地降低音频数据量。MPEG制定的压缩标准)
- .aif(AIF/AIFF是音频交换文件格式(Audio Interchange File Format)的英文缩写,是Apple公司开发的一种声音文件格式)
.ogg(Ogg全称是OGGVobis(oggVorbis)是一种音频压缩格式,类似于MP3等的音乐格式。Ogg是完全免费、开放和没有专利限制的。).
添加一个音效,需要两个组件。首先需要有一个对象携带audio Listener,在一个场景中只能有一个audio listener,之后可以在各个对象上添加audio source。这样listener就可以接收source的声音。
在audio source中可以设置包括如下:
- udio Clip(声音剪辑): 也可以叫声音片段,选取声音文件
- Mute:是否禁音
- Bypass Effects:忽略音效
- Play On Awake(唤起时播放): 如果勾选这个,那么当First Person Controller被加载到游戏场景中时音乐就会自动播放。
- Loop:是否循环
- Priority(优先级): 当游戏里同时播放的音乐数量太多时,优先级低的音乐可能不会被播放,调整优先级可以防止背景音乐这种重要的音乐被忽略。
- Volume:音量
- Pitch(音高):通过加速播放实现的音高调整,也是几倍速的意思
- stereo pan:在2D声音时有效,从-1到1来调整左右声道的比例。
- spatial blend:从2D到3D的过渡。
- reverb zone mix:混响效果的比例。
- 3D Sound Setting(3D声音设置):3D效果时有效,包括以下几条
- Doppler Level(多普勒效应等级):多普勒效应,就是会随着listener的移动速度来影响听到的声音的频率
- Volume RollOff(音量过渡模式) :当listener从远处靠近声音源的过程中,音量的渐变方式。包括: 1、Logarithmic Rolloff(对数过渡模式) 2、Linear Rolloff(线性过渡模式) 3、Custom Rolloff(自定义过渡模式) 。
- max diatance:声音传播最远距离。
- min distance:声音传播最近距离.
- 根据以上三个设置会产生一个坐标图,横坐标指listener与audio的距离,纵坐标指音量大小,中间是这两个的函数,或者对数,或者线性,或者自己拖拽生成自定义函数图像。
注意:一定要注意listener是在哪里,应该使之在控制的对象上,即使你是在制作第三人称游戏,也不应该放在摄像机上,否则因为摄像机始终在斜上方看着对象,使你体验的声音就不会是第一人称的了,会导致没有代入感。
使用脚本控制声音播放:
if(GetComponent.<AudioSource>()){ GetComponent.<AudioSource>().Play(); } //GetComponent.<AudioSource>().Play();播放对象的AudioSource组件的声音剪辑 //优化版yield WaitForSeconds(audiodelay);//yield 暂停一帧 yield WaitForSeconds(audiodelay); 暂停audiodelay帧GetComponent.<AudioSource>().PlayOneShot(auClip);//GetComponent.<AudioSource>().PlayOneShot(auClip);播放对象的选中的的声音剪辑,这样启动的声音彼此不会影响,会同时响起//再优版 GetComponent.<AudioSource>().clip=auClip;//这样会改变默认音频,而不是启动多个音频 GetComponent.<AudioSource>().PlayDelayed(audiodelay); }
四.unity自带的动画视图——自制简易动画
给一个对象添加animation组件之后可以使用unity自带的动画视图来给该对象自制动画。
window—>animation使用动画视图。
该视图包括以下几点使用区域:
使用add propert,在该面板选择对象的各个属性。
使用导航中的红色按钮进入编辑动画,中间的开始按钮播放当前动画。
使用右上角切换当前编辑的帧数。
使用curves视图(在左下角调整),可以调整属性的变化曲线。
调整的时候,首先先在各个帧添加节点add key(快捷键K),可以选择需要的属性添加。在当前帧可以在scene中调整对象的状态,会自动记录在当前帧。然后再每个节点处可以调整节点的左右切线,包括free(自定义,使用besizer曲线手柄调整两个节点中间的曲线),constant(常量直线),linear(线性匀速增加)。
使用滚轮或F,A等快捷键可以缩放视图。
注意:unity5新增的generic体系下和legacy体系下制作出来的动画是不能够混用的。制作时一定要确认对象是哪种动画系统,制作完成后再采用相应的方法才能展示动画。如果是generic,就需要使用anivator组件,如果是legacy,就可以使用animation组件。两种动画文件虽然都是.anim,但是在unity中Inspector会显示不同的视图。
对于其他属性的使用方面,具体的情况会有不同的动画形式,这里不做太多测试。下面给出一个对alpha的动画设置的解释:在animation中添加属性吗material.color,因为透明度是通过材质体现的,将曲线设置为如下的形式的话,就会随时间有一个在60帧之后从1到0的变化,逐渐透明。
需要注意的是,光是修改alpha还不足以修改透明度,仍然需要使用带有alpha通道的shader,普通的着色器不足以体现透明度,所以要使用transparent族的shader。这样即可有一个淡出的动画效果。但是注意虽然不可见,但实际仍然在不停得进行渲染,消耗帧速率。
注:导入的动画是不能再编辑的,但是可以预览。要想修改,只能编辑其副本。
- Unity5使用所遇难点及解决方案(基于与unity4的比较)(二.动作对象)
- Unity5使用所遇难点及解决方案(基于与unity4的比较)(三.管理状态)
- Unity5使用所遇难点及解决方案(基于与unity4的比较)(一.GUI及导入资源处理)
- 前端界面目前所遇难点解决方案总结
- (二十四)unity4.6学习Ugui中文文档-------在unity4.6之前使用UnityEvent
- 《UI框架—基于Unity5.4UGUI(二)》
- 基于对象的数据筛选与排序(二)
- C#学习及与delphi的比较(二)
- unity4和unity5区别
- Unity5和unity4的AssetBundle打包策略对比分析
- 【Unity】最近整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享。
- 最近整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享。
- Oracle索引分析与比较(二)—— 各种索引的创建方法、使用场合及建议
- 升级Unity5-----Unity5灯光烘焙与Unity4 灯光烘焙实际应用中的差别
- 【cocos2d-x】动作类之缓冲动作和组合动作的使用(变速动作)
- 关于unity5.x破解不了的问题(二)
- 【怎样写代码】复杂对象的组装与创建 -- 建造者模式(二):解决方案
- 第2章 对象的创建与使用(二)
- 接收推送數據的時候,app 直接崩溃
- code forces 443 A.Borya's Diagnosis(找规律)
- Gradle for Android(六)——测试
- L23 shell基础知识(一)
- qt学习笔记之qss
- Unity5使用所遇难点及解决方案(基于与unity4的比较)(二.动作对象)
- 网络编程-同步和异步的概念
- 开源实时日志分析ELK平台部署
- R语言绘制坐标 保存图片
- Android模拟IOS风格的自定义Dialog底部弹窗案例
- 指针和引用的区别
- 计算时间,指定时间的多少个月后
- 中国移动苏州研发中心前端笔试(2)
- Java