Unity与学期总结

这里写自定义目录标题

说明:

该篇文章为期末总结

图片格式:

NGUI生成的图集的图片格式是PNG格式,但是无论是什么格式的图片Unity都会自己生成一套格式,并且打包的时候不会用文件夹下面的格式,而是Unity自己格式。

如果你用的UITexture 你可以对每一张图来修改格式,比如颜色数比较少的图片可以使用16bit,如果没有透明,可以使用pvr或者etc这样图片会小很多。

为什么在游戏开发中不使用MVC?

1,代码繁冗,当你阅读别人的代码,一个很简单的逻辑,被封装了多次,需要在多个代码文件中索引,阅读效率极低。代码文件分散,一些很简单的逻辑,例如按钮点击,都做了多层封装。

2,不太专业的某些程序的惰性,导致他们并不是真正理解MVC或者说这些框架的原理,他们的目标只是,把功能搞出来。他们要么绕过框架,穿插了很多调用,要么整体copy别人的一个功能,去掉逻辑,留下骨架,然后填充自己的逻辑,也不管这个骨架是否适用。这样的人,大大增加了项目的混乱,leader要做到充分的代码review,去除这些问题,在开发进度吃紧,每周都要出版本的情况下,是不可能的。这些快速堆出功能的程序员,反而得到策划等非技术人员的赞赏。而认真处理,把每一块都做好,但是慢一点的程序,反而不受夸奖,这导致了劣币驱逐良币。我相信,除了极少数精英团队,很多团队都有这样的问题。

3,这些设计和框架,被滥用。比如MVC也许适用于UI部分的设计,但是,他是否适用一个战斗模块呢?他是否适用一个剧情模块呢?有些团队,机械地运用某些框架,并不根据需求去思考,认为某个东西是好的,就到处使用。

我们回到最初,仔细考虑,MVC解决的核心问题是,一个M,多个V,那么,在游戏领域,这样的需求多吗?是强需求吗?我们到底应该根据需求来设计框架,还是应该根据框架来填充需求?一个框架,一套设计,适用不同的游戏,不同的逻辑吗?

我认真地考虑这块问题,发现很多教程,文章,他们介绍MVC,MVVM,介绍各种框架,包括uframe,StrangeIoC等,都缺少了思考和提问

ShadowMap原理

1.从产生阴影的光源(在通常项目中为Directional Light)放置一个相机,渲染一次场景,获取深度贴图。

2.场景内物体渲染时,将自身世界坐标转入刚才的阴影相机的投影坐标得到统一坐标系下的深度值然后和对应深度贴图中保存的深度值比较,(在d3d11下)如果小于保存的深度值代表此像素处于阴影。

获取ShadowMap

有了原理,我们接下来第一步就是要保存场景的ShadowMap。首先是建立一个Camera用来生成ShadowMap,这个camera必须和场景的主光源,通常为Directional Light,有一样的Forward朝向(Directional Light的话,需开启正交相机)。Camera的视窗决定了那些区域能产生阴影,通常有两种方案来决定视窗范围

FitScene

顾名思义,阴影摄像机视锥覆盖到场景内所有角色可行走范围即可,区域外由于角色走不到,不会产生阴影交互,生成也是浪费。比较适合小场景。对于只计算静态阴影,只需生成一次即可。缺点是当场景较大的时候,摄像机视锥很大导致ShadowMap纹理很大或者分辨率较低。

FitView

阴影摄像机视锥覆盖观察摄像机视锥,即阴影相机只渲染主观察相机能看到的地方,相对FitScene,FitView的阴影区域生成利用率更高,因为处于可行走区域但是不被主观察相机渲染的地方是不会被生成到ShadowMap中的,但是主相机的参数只要一改变,对应阴影摄像机的视锥参数也会改变,所以需要实时调整阴影摄像机的视锥以匹配观察摄像机的视锥。

由于项目和移动端性能考虑,我们项目采用了FitScene的方式来生成ShadowMap。在场景搭建好之后,美术或者策划只要在场景内适当位置摆放好一个用来生成的ShadowMap的摄像机即可,我们这里为其编写了一些工具,可简化美术或者策划端的工作。

有了正确的阴影摄像机参数设置,我们就可以在游戏开始前对场景生成ShadowMap。这里我们采用Camera自带的方法RenderWithShader,渲染一次到rendertexture,然后即可关闭这个相机。下面给出ShadowMapCapture(阴影捕获Shader)主体。

UI设计

在UI设计中,避免使用有衬线。iOS中英文用Helvetica,中文使用冬青、思源黑体等一些无线衬字体,尽量用一下和iOS自有字体相似的字体做设计,这样在app实现后能和设计稿效果减小相差出入。

选色

基本选择两个颜色,主色、辅色。而高光、阴影基于主色,高光向左上角去选择合适的色值,阴影向右下角选择暗一些的色值。主色选择是很重要的,每一个主题都有一个适合的颜色,就像旅游类的采用蓝绿色系的色值。同样色值也是有忌讳的,比如在国内金融就不能使用绿色了,因为绿色在股市代表着跌;可想而知,一个用绿色作为主题色的金融app会怎样?

原文地址:https://blog.csdn.net/Meow_wu/article/details/113563162

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍了Unity游戏开发中外观模式是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章主要介绍Unity中地面检测方案的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.普通射线在角色坐标(一般是脚底)...
这篇文章主要介绍了Unity游戏开发中如何消除不想要的黄色警告,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带...
这篇文章主要介绍了Unity中有多少种渲染队列,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解
这篇文章主要介绍Unity中如何实现Texture,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!了解Texture2D 如上图,Texture2D是一张
小编给大家分享一下Unity中DOTS要实现的特点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让...
这篇文章给大家分享的是有关unity中如何实现UGUI遮罩流光特效的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。下面是核心shader:Sh...
这篇文章主要为大家展示了“Unity中如何实现3D坐标转换UGUI坐标”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下...
这篇文章主要介绍了Unity游戏开发中设计模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章主要介绍了Unity中如何实现仿真丝袜渲染,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了...
这篇文章给大家分享的是有关Unity插件OVRLipSync有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。项目需要接入对话口型动...
这篇文章主要介绍了Unity性能优化之DrawCall的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
这篇文章给大家分享的是有关Unity给力插件之Final IK怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这插件有什么用:一般游...
这篇文章给大家分享的是有关Unity中如何内嵌网页插件UniWebView的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、常见Unity中内...
小编给大家分享一下Unity如何做流体物理的几个轮子,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让...
小编给大家分享一下Unity中Lod和Occlusion Culling的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收...
这篇文章将为大家详细讲解有关Unity中LineRenderer与TrailRenderer有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获...
这篇文章主要介绍了Unity中coroutine问题的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起...
这篇文章将为大家详细讲解有关unity中spine怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。骨骼动画首先我们来看到...
这篇文章主要为大家展示了“Unity Shader后处理中如何实现简单均值模糊”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学...