Unity中可以扩展的相机属性●清除标记:决定场景的哪个部分需要清除。你可以创建多个相机并赋予它们不同的深度。如果当前相机没有设置天空盒,它将缺省使用在渲染设置中的天空盒。武器相机的Clear Flags应该被设置为仅深度。为了使UI显示在所有其他相机视的顶部,你还需要设置Clear Flags和Depth only并确定相机的深度比其他相机的高。图7-53景深相机正交相机。......
2023-10-17
我们开始添加音效。在Assets→Audio文件夹下,右击Create→AudioMixer(见图8-253)。
图8-253 添加音效
在场景中创建一个空物体,BackGroundMusic,加上AudioSource组件(见图8-254)。
此时运行项目,可以听到背景音乐了。
玩家开枪和受伤的声音添加于主角身上(见图8-255)和放枪上(见图8-256)。
在代码里调用(见图8-257)。
只要在主角受伤时播放音效就可以了,开枪的声音同理。
刚刚制作的AudioMixer还没有用到,现在我们开始制作,双击AudioMixer,添加一个SoundEffect(见图8-258)。
在AudioMixer添加一个Music用来控制背景音乐,SoundEffect用来控制音效,Master用来同时控制二者(见图8-259)。
图8-254 添加AudioSource组件
图8-255 添加声音给主角
图8-256 添加声音给枪
图8-257 添加声音的脚本调用
图8-258 添加AudioMixer
图8-259 添加Music、SoundEffect及Master
再新建一个AudioMixer(见图8-260)。
图8-260 创建AudioMixer(www.chuimin.cn)
把Player放到角色的AudioSource的output中,GunShots放到枪的AudioSource的output中(见图8-261),enemies放到怪物的AudioSource的output里(见图8-262)。
怪物被攻击的声音播放与上面一样。
新建脚本MixLevel,新建一个UI界面用来让玩家设定音量,UI界面制作同前面一样(见图8-263)。
做好后把代码放到这个Canvas上(见图8-264)。
图8-261 enemies放到怪物的AudioSource的output
图8-262 添加组件
图8-263 新建脚本MixLevel
图8-264 把代码放至Canvas
回到MasterMixer,单击volumn,选择exposed(见图8-265)。
图8-265 选择exposed
此时变量列表已经暴露出来(见图8-266)
图8-266 变量列表
依次选择Music、SoundEffect添加变量music、sound,回到MixLevel添加代码(见图8-267)。
图8-267 添加music、sound脚本代码
回到UI界面里面的slider条,按照不同的slider条功能添加不同的函数(见图8-268)。
图8-268 在slider条添加函数
运行,就可以手动调节音量了。
有关虚拟现实理论基础与应用开发实践的文章
Unity中可以扩展的相机属性●清除标记:决定场景的哪个部分需要清除。你可以创建多个相机并赋予它们不同的深度。如果当前相机没有设置天空盒,它将缺省使用在渲染设置中的天空盒。武器相机的Clear Flags应该被设置为仅深度。为了使UI显示在所有其他相机视的顶部,你还需要设置Clear Flags和Depth only并确定相机的深度比其他相机的高。图7-53景深相机正交相机。......
2023-10-17
图8-32Ball脚本创建1)概要前面创建了一个游戏项目,并且创建了玩家角色和小球这些游戏对象,还通过添加游戏脚本实现了小方块的弹跳。图8-33游戏开始状态图8-34Ball项文本变为蓝色图8-35多出一个小球对象将Player和Floor游戏对象也做成预设。图8-37创建文件夹并修改其名称图8-38移动Player预设和Floor预设至Prefabs文件夹将预设Ball Prefab拖拽到Prefabs文件夹下。图8-39保存文件夹回到Assets图8-40游戏对象命名5)发射小球在窗口顶部菜单中依次单击GameObject→Create Empty。......
2023-10-17
实例化预设使用上面章节中描述的创建预设的方法。一旦你创建了预设,你就可以简单快速地得到一个预设的拷贝,称为实例。为了创建任何预设的一个实例,从工程视图中拖动一个预设到层次或场景视图中。添加组件和脚本当你选中任何预设或物体时,你可以通过使用组件来向其中添加一些额外的功能。脚本也是组件的一种类型。缺省情况下脚本也包含在组件菜单中。你可以通过Components→Camera-Control来找到它。......
2023-10-17
图8-120公有变量初始化这里要注意的是,Tank Mask的选取必须是Players,否则后面子弹的爆炸将不会作用于坦克。图8-121FireTransform的transform设置2)发射子弹接下来就要实现子弹的发射功能,并且子弹可以蓄能,蓄能越久射击距离也就越长,因此也就需要有一个蓄能状态的指示。首先,选中Hierarchy层级下的Tank,为它新建一个子对象Create Empty,命名为FireTransform。该对象主要是规定子弹的射出位置。测试完毕之后,把Hierarchy层的Tank删除掉,保存当前场景。......
2023-10-17
图9-71创建游戏管理器的逻辑脚本游戏胜负逻辑是与GameManager等脚本关联起来的。图9-76添加Look At Target组件运行游戏,发现收集物状态UI已经可以正常显示,面向摄像机了。图9-78添加Wall Mover组件图9-79组件关联在Scripts文件夹内右键Create→C# Script,重命名GoalZone,用于处理到达终点的逻辑。找到VR Win Panel→Exit Game Button上的Button组件,设置On Click事件调用为Game Manager UI→GameManager.ExitGame方法。图9-84设置完成的效果显示成功拾取到4个盾牌收集物到达GoalZone,也会弹出VR Win Panel的UI,可以进行一样的操作。......
2023-10-17
本小节将介绍的是Unity数据库与存储的相关内容。XML的设计宗旨是传输数据,而非显示数据。7)Xml数据生成步骤在Unity引擎中如何生成本地XML数据?8)Xml数据生成示例9)Xml序列化序列化是将对象状态转换为可保持或传输的格式的过程。12)什么是SQLite①SQLite是一款轻型的数据库。语法:SELECT列名称FROM表名称13)Unity当中使用SQLite导入mono.data.sqlite.dll到Assets文件夹代码添加库:using Mono.Data.Sqlite;使用SQLiteConnection对象,进行数据库连接,此操作可以创建空的数据库。关闭数据库连接,释放资源。…......
2023-10-17
尝试添加一个刚体到刚创建的物体上。选择该物体并从菜单中选择Component→physics→Rigidbody。它们使用一个粒子发射器,粒子动画和粒子渲染器来创建一组移动的粒子。音频剪辑是一个引用属性。移除组件如果你想移除一个组件,在检视面板的头部使用option-或右击然后选择移除组件。例如,如果你想访问变换组件的变换功能,你只需要使用transform.Translate()或gameObject.transform.Translate()。使用GetComponent()有许多组件不能成为一个游戏物体类的成员。通过调用GetComponent并存储一个引用到结果中。......
2023-10-17
在先前的PlayerShoot中我们改变一句代码。图8-236设置完成后Apply的效果图8-237EnemyHealth脚本图8-238EnemyHealth脚本图8-239PlayerShoot代码修改图8-240SetTrigger设置图8-241Trigger设置完成图8-242给怪物的Prefab添加EnemyHealth及刚体+碰撞体图8-243怪物被扣血2)动画事件假如你在试验的时候发现报了类似这个错误。图8-247添加变量图8-248StartSinking方法的添加这时候单击运行可以看见怪物死亡,并且下沉了。......
2023-10-17
相关推荐