http://blog.sysuschool.com/u/mygod/index.html
请稍候,载入中。。。
 
请稍候,载入中。。。
2023/12/18 8:54:00
博文:Unity3D实现虚拟校园行_游戏实现

  前面两篇博文介绍了场景的搭建和角色的构成和操控,至此已可以进行校园的漫步游览了,当然还有UI界面没有制作,为了增加趣味,添加一个打卡任务,使作品又是一个游戏,场景添加7个打卡标志(旋转的楼名或场室名的三维文字),一开始是隐藏的,通过角色漫游触发显示出来,然后角色触碰标志,完成一次打卡,完成所有打卡,即通关,可重新开始。 

1、打卡标志 

  在max中制作7个三维文字,导入到unity中,在unity中手动制作旋转动画(方法略),卡标志的层次构成,如博学楼的标志

Bxl_card

  - - bxl_t

  - - carmera_bxl

  - - timeline

  这里Bxl_card为父对象(空对象),其子对象有三个,bxl_t为旋转的文字模型、carmera_bxl为摄像机(博学楼专用,制作相机动画,由于同一时间只能一个相机,先关闭)、timeline为时间线(安排相机动画和博学楼介绍的UI出现),card.cs脚本挂在Bxl_card,脚本用来控制当玩家碰撞到标志时,玩家隐藏,播放楼的介绍文本,出现继续按钮,还有让底部楼名灰色圆点变成绿色,表示打卡成功,具体脚本参看源文件。 

  这里注意,卡对象的碰撞组件,要勾选istrogger,在脚本的OnTriggerEnter回调函数中去判断是否发生碰撞及碰撞后需要处理的东西,像OnTriggerEnter这类方法,无需放入update方法中,只要碰撞发生就会执行,前提是碰撞组件一定要勾选istrogger 

2、卡的触发 

  可以在若干位置创建一个空对象,加碰撞组件,调整组件大小位置即可,专写一个触发脚本cf_card.cs,碰撞时判断需要显示哪个卡,同时出现提示文本。

略! 

2、游戏管理 

  一个游戏中,总是有一些公共的东西,需要被各个脚本去调用,尤其有多个场景多个关卡更为重要,由于这个游戏没有其他场景,故相对简单,就算这样,也最好有一个公共的脚本用来游戏的管理,如打卡的数量变量,需要调用的卡对象和触发对象这些游戏对象。脚本中这里定义一个单例(即该类只能实列化一个对象),脚本给场景中一个空对象(命名game manager),即可。 

  最后打包发布成windows应用,大小约170Mb 

  最后补充一点,unity引擎可以免费下载,但需要注册,去官网下载unity hub,用其他比较麻烦,可以使用微信绑定,然后再hub中下载需要的版本,注意只有lts的版本为长期支持版本。

3、UI界面

 新版的unity的UI搭建比较方便,添加一个画布,默认就是正对摄像机的,UI是平面的,在场景视图看上去怪怪的,好像场景变的非常小,其实没有关系,只要有UI,运行时,UI默认就会出现在当前摄像机的前方,理解这点就好,如果你的UI是透明的,UI的后面就是你的场景,用脚本控制UI元素关闭,感觉就回到场景了。
mygod | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
请稍候,载入中。。。
公告
请稍候,载入中。。。
时间记忆
请稍候,载入中。。。
最新日志
请稍候,载入中。。。
最新评论
请稍候,载入中。。。
最新回复
请稍候,载入中。。。
我的好友
我的相册
站点信息
请稍候,载入中。。。
生活因感动而精彩,理想在创造中放飞
Powered by Oblog.