Unity3D Demo项目开发记录

  前言

  经过一段时间的学习与实际开发,unity3D也勉强算是强行入门了,正所谓好记性不如烂笔头,更何况本人并非专业从事unity3D开发,会一点C#但也并不熟悉,为了避免后期遗忘,因此特意整理了一个Demo项目,特此记录

  本项目是一个简单的Unity学习项目,封装了一下简单、通用功能组件,适用于数据可视化展示

  项目特色

  1、封装了简单Camera镜头操作、镜头巡航脚步

  2、封装单击、双击事件同时绑定脚本(unity3D 游戏物体同时绑定单击、双击事件

  3、封装永远面向屏幕、跟随镜头旋转缩放,缩放大小不变的Billboard公告牌脚本(unity3D 自定义公告牌 )

  4、利用LineRenderer,封装自定义流动线路脚本

  5、封装自定义弹窗,带遮阴层,可拖动

  6、项目用到BestHTTP插件,网传最好用的http插件

  7、项目用到XCharts插件,丰富图表展示足够满足需求

  8、项目用到DoTween插件,在代码中可轻松实现各种动画效果

  项目结构

  整体是这样:大目录下进行分组,对应的资源分组存放

Unity3D Demo项目开发记录

  运行预览

  效果先睹为快,具体介绍在下方,按功能点进行详情介绍

Unity3D Demo项目开发记录

  功能详解

  

  背景图

  需要单独创建一个摄像头,并只看背景图片,这样才能跟主摄像头相互不影响

  背景图片是从网上找的素材,简单的PS了一下,图片风格,黑中带蓝、蓝中带紫、紫色中透着白光,四周偏暗,中间偏亮,也就网传“五彩斑斓的黑”能够与之一拼,更能凸显3D主体对象

Unity3D Demo项目开发记录

  镜头操作

  包括镜头缩放、鼠标左键进行上下左右旋转,同时可定点巡航、以及指定路线巡航

  定点巡航,给定一个坐标点,镜头将会围绕目标点巡航360度

Unity3D Demo项目开发记录

  定线巡航,给定多个坐标点,镜头就会依次推进到指定位置,当然了,路线的选择决定了巡航的最终效果,像我这里的坐标点就选得不行,3D对象都跑出镜头外了...

Unity3D Demo项目开发记录

  单双击事件绑定

  unity3D 游戏物体同时绑定单击、双击事件,具体实现看之前的博客:unity3D 游戏物体同时绑定单击、双击事件

Unity3D Demo项目开发记录

  自定义公告牌

  永远面向屏幕、跟随镜头旋转缩放,缩放大小不变的Billboard公告牌,具体实现看之前的博客:unity3D 自定义公告牌

Unity3D Demo项目开发记录

  流动线路

  利用LineRenderer进行画线,材质球设置好流动的光点背景图,封装好脚本,在update中修改材质球的mainTextureOffset值,以一定的速度进行增加或减小,从而达到光点流动的效果,同时利用贝塞尔曲线(参考博客:https://www.cnblogs.com/msxh/p/6270468.html)实现一定的弧度弯曲效果

Unity3D Demo项目开发记录

  自定义弹窗

  自定义弹窗,带遮阴层,弹出弹窗时鼠标无法操作对象(3D、按钮等),同时左键长按标题栏可拖动弹窗,封装了四个简单弹窗:alert警告框,affirm确认框,scrollBox滚动框,msg提示框

  可输出普通文本,也可以操作追加3D对象(如下面的模拟监控功能)

Unity3D Demo项目开发记录

  XCharts图表

  一款基于`UGUI`的功能强大、易用、参数可配置的数据可视化图表插件。支持折线图、柱状图、饼图、雷达图、散点图、热力图等常见图表。

  XCharts主页:https://github.com/monitor1394/unity-ugui-XCharts

  插件自带一个demo场景,各种图表都有例子

Unity3D Demo项目开发记录

  拿过来改一改就能用

Unity3D Demo项目开发记录

  BestHTTP请求

  BestHTTP在网上一搜,好多都说是最好用、最强大的HTTP插件,有各种强大的骚操作,具体的自行百度了解,因为我们现在用不上,简单的http get、post请求,以及json转C#对象就够我们用了

  插件同样自带demo场景,里面有各种例子

Unity3D Demo项目开发记录

  http请求,发送get、post(PS:如果是打包成WebGL,由于浏览器的同源策略,会存在跨域问题,这一点需要注意),比如我们在程序一运行就发起get请求获取配置文件信息,并在UI面板中设置

Unity3D Demo项目开发记录

Unity3D Demo项目开发记录

  Panel面板

  一个带背景图的简单基础预制体,可作为其他UI面板的基础

Unity3D Demo项目开发记录

Unity3D Demo项目开发记录

  DoTween动画

  强大的动画插件,更多介绍查看官网:http://dotween.demigiant.com/documentation.php

  项目中常用的就UI面板的进场、离场动画、以及3D对象的动画,比如我们这里的标题、按钮组、左右UI面板都有一个进场动画

Unity3D Demo项目开发记录

  

  模拟监控

  使用自定义alert弹窗弹出,目前是直接播放mp4格式视频,做这个组件,主要是为后续接入视频监控做储备

  注:unity自带的视频播放组件存在一些问题,有时候会导致程序直接崩掉,我就经常碰到,比如在代码中修改视频url,经常卡死程序自动退出...

Unity3D Demo项目开发记录

  WebGL打包

  Edit -> Project Serrings -> Quality 进行WebGL打包参数设置

Unity3D Demo项目开发记录

  File -> Build Settings,添加需要打包的场景,选择WebGL,Build,选择文件夹打包,接下来就是等待了,时间看电脑配置,配置越好打包速度越快

Unity3D Demo项目开发记录

  

  后记

  开发中,有些功能我们没必要重复造*,网上可以找到很多插件,各式各样的功能都有,比如这个网站:http://www.6m5m.com/index.php

  不过作者钱包五行缺钱,平时学习时只能下载0金币0积分的资源....,但如果是碰到项目能用的上,又是比较必要的插件,可以让经理或者公司去充值购买

  Unity 3D Demo项目暂时记录到这,后续再进行补充

  

  代码开源

  代码已经开源、托管到我的GitHub、码云:

  GitHub:https://github.com/huanzi-qch/unity-demo

  码云:https://gitee.com/huanzi-qch/unity-demo

上一篇:Android程序入口以及项目文件夹的含义和使用总结—入门


下一篇:从mac终端创建cocos2d-x项目在xcode和eclipse正常运行环境配置