- 最后登录
- 2022-8-9
- 注册时间
- 2012-8-10
- 阅读权限
- 100
- 积分
- 74990
- 纳金币
- 59338
- 精华
- 28
|
pstatus"> 本帖最后由 艾西格亚 于 2013-9-10 16:03 编辑
uScript V 0.9.2236下载:
http://www.narkii.com/club/bbs_286674.shtml
初识uScript (一)程序安装与范例文件的使用
http://www.narkii.com/club/bbs_288802.shtml
初识uScript (二)小球吃钱币的设计逻辑与思路研究
http://www.narkii.com/club/bbs_289006.shtml
初识uScript (三)使用Trigger进行灯光颜色的变换
http://www.narkii.com/club/bbs_289351.shtml
在uScript 的前面的几个教程里面,相信大家对于uScript的节点操作已经有了初步的认识,
同时也有朋友提出一个问题,Playmaker的可视化操作与uScript比较起来谁更具优势?
简单来说,uScript比较偏向逻辑性操作,也就是具备了程序化的思维,从前面的几个范例流程里面大约可理解了uScript的节点运用与物件之间的关联性。接下来的教程里面,我们将以一个控制台的开关来说明uScript的逻辑操作,在教程的第一个阶段我们将设定角色走向大门内的警示区,这时门口两边的红色警示灯开始旋转,同时发出巨大的警报声并关闭大门。
第二个部分是设定警示区的关闭,在角色靠近控制台时,系统提示按下H键关闭警示区域的,然后角色就可顺利通过大门而进到内部的空间,在解除警示区的同时,控制台与大门上方的也会进行颜色的替换。
范例所在位置:Examples > AlarmGameplay (需安装uScript的范例资源包)
如图所示,在场景内的两个Trigger(绿色框物件)分别触发不同的功能,在左边控制台的Trigger用来提示解除警示区的按键,大门的Trigger则是触发警示区的光线与警报声。
在Hierarchy架构里面可以看到Alarm_Setup是整个警示功能群组,Trigger_Alarm为门口的触发器物件,Trigger_Console物件则是用在控制台的前方区域。
Ok,现在开始第一个部分的制作,按下Ctrl + U键打开uScript编辑视窗,首先建立一个Ttigger Events,直接将Events > Trigger Events拖曳到编辑视窗内即可。
接着将Alarm_Setup > Trigger_Alarm这个触发物件拖曳到 Trigger Events > Instance的栏位,这个作用是让Trigger_Alarm具备传送触发事件的功能。
然后将Alarm_Light_Left, Alarm_Light_Right这两个光源以GameObject模式拖曳进来,如图所示。
将Action > Toggle > Toggle Component拖曳到编辑视窗,Toggle Component的作用类似开关的功能,接着将OnEnterTrigger连接到Toggle Component > Turn On,Target则连接到Alarm_Light_Left, Alarm_Light_Right这两个GameObject。
从这个连接的方式来看不难理解,只要Trigger_Alarm被触发(OnEnterTrigger),Alarm_Light_Left, Alarm_Light_Right这两个光源就成为启用的状态。
请注意,Alarm_Light的默认已经被我们设定成关闭,所以在Trigger_Alarm被触发后就成为开启的状态。
按下Component Name创建一个Create Linked Variable的节点,在Value的栏位内键入Light,
表示在节点里面是调用了Light的组件作为开关。
在编辑视窗内进行uScript储存,选择File Menu > Save As..将目前的设置储存为一个新的名称,然后进行Play测试,当角色移动进入大门的前方区域是,两边的红色警示灯就成为开启的状态。
在测试的时候我们发现一个问题,那就是角色触发Trigger_Alarm启动了红色的警示灯,但是角色离开该区域后,警示灯并没有关闭,这时只要将OnExitTrigger连接到Turn Off的位置,如此在角色离开Trigger_Alarm的范围,红色警示灯就会回到原来的关闭状态。
警示灯的启用只是将红色灯光打开,并没有进行其他的动作,所以我们需要在灯光上做些效果,将Actions > Game Objects > Rotate 拖曳进来,Degrees 设定为360度,Axis设定为Y轴,Seconds为2秒,然后将Target连接到Alarm_Light_Right。
从Rotate的节点连接之后来看就很容易理解uScript的逻辑,简单的描述一下就是: Trigger_Alarm被触发时就启用Alarm_Light的两个红色灯光,并以Y轴进行每秒180度的旋转,如果将Seconds设定为1,就表示灯光每秒旋转一圈。
Rotate > Target只连接到Alarm_Light_Right,如果我们将两个光源连接到相同的节点,这样两个灯光会变成相同的旋转方向,这时需要复制出另一个Rotate节点与Alarm_Light_Left进行连接,点击Rotate按下Ctrl +C键,Ctrl + V键复制出另一个Rotate节点,在复制出来的Rotate节点里面修改Degrees为-360(反向旋转),然后连接Target 到Alarm_Light_Left,如图所示。
储存后再进行测试时就会看到两个灯光在Tigger_Alarm触发后会做出不同反向的旋转,在角色离开Trigger_Alarm的作用范围后,警示灯光也会随之关闭。
灯光的效果处理完成后,还少了警示的音效作用,将Actions > Audio > Play Sound 拖曳进来,这个节点是用来播放场景或是物件上面的音效。
在Play Sound的属性栏里面,将场景内First Person Controller/Main Camera拖曳到Target > Game Object的栏位,Volume音量设定为1, 勾选Loop使其能循环播放。
将Variables > Audio Clip拖曳进来,并与Play Sound > Audio Clip连接,这个操作方式与之前的uScript版本有些不同,建议使用圈子提供的版本进行练习,接着在Audio Clip栏位里面选择alarm(Audio目录下)为指定的音效。将Toggle Component > Turned On连接到Play, Turned On 连接到Stop,使警示音效在角色触发Trigger_Alarm时能开启,并在离开后关闭。
音效的设置完成后,门口的部分还需要制作关闭的效果以防止角色进入,如图所示,在Trigger_Alarm触发时,门口会进行关闭的动作。
我们需要对Door_Panels里面的Left与Right这两个物件设置Position.x的位移动画制作,操作方式是选择Door_Panels,在Animation里面新增一个ModoAnim的动画文件,然后分别对Door_Panel_Left与Door_Panel_Right进行关键帧设定。
如图,我们在Door_Panel_Left的X轴移动设定了1秒的关门动作,移动的距离是2个单位,
Door_Panel_Right也做了2单位的移动,如此大门可以控制在1秒内进行关闭的动作。
设定完成后将Actions > Animation > Play Animation 拖曳进来,然后连接Toggle Component > Turned On与Play Animation > In的节点。
将Door_Panels拖曳进来成为Game Object的节点,然后与Target进行连接,Animation输入我们设定好的关键帧动画的文件名ModoAnim, Speed Factor设定3的数值来加速门的关闭,
勾选Stop Other Animation是让物件上其他的动画暂时停止。
选择Play Animation,使用Ctrl+C,Ctrl+V方式复制出另一个节点,在复制出来的Play Animation里面将Speed Factor设定为-3,同样的将Target连接到Door_Panels,最后将Toggle Component > Turned Off连接到复制出来的Play Aniamtion > In的节点,如图所示。
按照上面的操作完成后进行Play测试,角色移动到Trigger_Alarm区域后触发警示灯与警报声,同时门口也会自动关闭,当角色离开警示区域后,警报解除,门也会再度打开。
练习完成第一个部分的操作后,对于uScript触发设定可说是有了更进一步的了解,
,在下一个教程里面,我们将使用控制台的触发来解除警示区的动作,透过这两个阶段的练习,相信对于uScript的综合运用会有全面的提升,同时也希望有更多的朋友能一起探讨uScript的未来发展与技术交流!
|
|