Unity3d脚本(Scripts)优化

 

想必所有的开发者在游戏开发后期都会不可避免的碰到优化问题,优秀的代码与程序性能息息相关,而程序性能往往与玩家的游戏体验性也直接挂钩,尤其在端游上,移动平台上cpu和显卡资源还是很珍贵的,下面我们来看下在unity3d中如何优化脚本scripts及内存!

1. 尽量避免每帧处理

More

Unity3d中接口、虚函数的使用

 

最近在Unity3d封装重构太空大战的代码,结合原来C#的知识点发现很多有意思的地方,此文主要介绍下接口和虚函数的使用,首先看下定义

接口:接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的所有方法。

虚函数:虚函数是动态联编的基础,它是引入派生概念之后用来表现基类和派生类成员函数之间的一种关系的。虚函数在基类中定义,它也是一种成员函数,而且是非静态成员函数。

More

简单工厂模式在unity3d里面的使用

工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定实例化哪一个类,而不必实现知道要实例化的是哪一个类。
在这个工厂模式家族中有3种形态:
简单工厂模式,这是他的中文名,英文名叫做Simple Factory。
工厂方法模式,这是他的中文名,英文名叫做Factory Method。
抽象工厂模式,这是他的中文名,英文名叫做Abstract Factory。

现在我们知道了工厂家族在GoF23里面的几个队员叫什么名字,但是还不熟悉怎么使用他。不要着急,现在我们就开始学习如何使用他们。在工厂家族中简单工厂模式是这3种形态里面最简单最直接的一种。我们就先从他下手,然后在逐步的了解工厂方法模式、抽象工厂模式的使用。

相对于OOP来说,每种设计模式都是一套武功心法,而每套心法对应的武功套路就是模式的具体使用的方式。

More

单例模式在Unity3d里面的使用

 

面向对象想必大家都不陌生,今天我们要说的就是GOF23中设计模式里面的一个,叫做单例模式。在他的字典里,不允许有第二个自己存在,要保证实例唯一。他的一般解释就是,保证一个类只有一个实例,并提供一访问他的全局访问点。单例模式因为封装他的唯一实例,他就可以严格的控制客户怎样访问他以及何时访问他。

下面我们就设计模式在unity引擎开发中的使用来做一些简单说明。

简单来说单例在Unity3d中的使用,方式可以如下:

More

Unity3d基于组件(Component)的设计模式思想

 

如果你接触过《设计模式》、软件架构的编程思想,就会知道优秀的设计准则:“ 组合优于继承的 ”。这句话很简短,但开始学习OOP的时候,真切的是—-不太好理解。

OOP的继承思想,如下图

designModel01

More

Unity4.6 UI自定义UI动画

 

UI系统集成了Unity 的动画系统,即您可以使用状态机或者其他的动画特性来控制UI元素或面板,这种做法稍微有点复杂,而且在关联事件上也有点复杂,那么我们如何自定义实现动画呢,下面以更改CanvasRender的Opacity为例,并且自定义UI动画开始及动画结束事件,我们新建一个名为TweenPlayer的脚本文件

More

Unity4.6 UI实现渐隐渐现(FadeIn FadeOut)效果

 

在做UI后期设计时,我们可能要对UI做一些特效,这篇文章我们来学习下如何在Unity3d中对实现渐隐渐现的效果,

首先我们看下Unity New UI即UGUI中渐隐渐现的做法.

观察我们会发现Unity4.6 UI中每个能够显示控件都会有一个CanvasRender对象,CanvasRender有什么作用呢,我们

看下官方的解释:The Canvas Renderer component renders a graphical UI object contained within a Canvas.简单的

翻译过来就是,画布上的渲染器组件将呈现包含在一个画布内的图形用户界面对象,再仔细查看CanvasRenderer类

时我们可以看到有两个方法SetAlpha ,SetColor,显然我们可以修改透明度Alpha和Color来实现渐隐渐现,同时我

们还可以发现Button,Text,Image等控件都会集成自Unity.UI.Graphic

More

Unity4.6 UI实现ListView

 

Unity4.6 UI又称UGUI,用过NGUI的童鞋都知道,NGUI中已经实现了ListView以及Table等控件,而Unity New UI 我们只能找到

一些简单的Button、Panel、Image、Label之类的控件,那么我们如何在unity3d UI中实现ListView呢,我们发现新的UI系统中有

个脚本叫Vertical Layout Group和Horizontal Layout Group显然从字面我们可以理解前者为垂直布局,后者为水平布局,下面我们就

利用Vertical Layout Group这个属性来实现ListView

先看下最终实现的效果图

More

Unity 4.6 UI官方视频教程

 

unity4.6 UI的一改旧版本的GUI系统,全新的布局,自定义prefab控件模板,以及新的事件处理机制EventSystem,

下面我们来看下官方的unity new ui即UGUI的视频教程

先看下视频截图:

ugui1

More

Unity3d资源之天气插件Storm Effects

 

时而狂风暴雨,时而晴空万里,时而雷电交加,时而漫天飞雪,想不想在你的游戏场景拥有这些变幻莫测的天气呢,

下面我们来看一款Unity资源之Storm Effects插件所实现的天气效果

暴风雪

Storm Effects1

More