自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (5)
  • 收藏
  • 关注

原创 夜间模式实现方式

1.修改theme:public class BaseActivity extends AppCompatActivity { private boolean isNightMode; private NightModeReceiver mNightModeReceiver; @Override protected void onCreate(Bundle savedIn

2016-08-28 19:02:03 1539

原创 设计模式——中介者(Unity3d中的应用)

在Unity3D中的感知系统使用的便是一个中介者模式,感知包括视觉感应器、听觉感应器、视觉触发器、听觉触发器等,感应器触发器之间的交互交由中介者来完成,最大程度上实现感应器、触发器直接的解耦。

2016-08-27 23:09:24 1099

原创 设计模式——状态机(AI)(Unity3D中的应用)

在Unity3D中对状态模式的应用当属于有限状态机的使用,利用状态机管理游戏物体的状态的管理,实现一个AI系统。

2016-08-27 22:53:21 3234

原创 Android性能优化——数据库SQLite

数据库操作: 1.使用事务进行批量数据操作: 数据库操作的本质是对磁盘文件的操作,频繁操作文件是一个耗时操作,影响数据库的存取速度。使用事务会降低数据库文件的开关频率,从而节约操作时间:普通方式:public void insertMemberListNormal(List<MemberModel> memberModelList){ int size = memberModel

2016-08-27 13:47:34 587

原创 Android性能优化——Layout的优化

Android开发一般使用xml文件进行布局,在Activity的onCreate方法中调用setContentView(layoutId),实现页面的绘制,如果Layout文件布置不合理就会可能造成加载缓慢和过度绘制。 加载缓慢是因为布局嵌套太多,层级太深,导致xml文件解析速度过慢。如果容器选用不当,会导致多次计算子控件的位置而耗费时间。那如何解决以上问题呢? 1、Android为我们提供了

2016-08-27 13:45:58 650

原创 Android性能优化——数据结构的优化

Android性能优化包含很多方面,今天我们来看看对于数据结构如何做优化。 1.集合的遍历操作:private void for1(ArrayList<Model> list){ long start = System.currentTimeMillis(); int len = list.size(); for(int i= 0;i < len;i

2016-08-27 13:45:09 655

原创 Serializable与Parcelable区别

Serializable是Java中序列化的接口,主要用于ObjectInputStream和ObjectOutputStream进行对象读写。关于Serializable的相关注意点大概如下:序列化ID,静态变量序列化,序列化存储规则,单例模式序列化等 ①序列化ID:调整类结构后,其serialVersionUID若未修改,反序列化过程中不会报异常,但获取某个属性值时可能会null;seriaV

2016-08-27 13:42:50 644

原创 ViewPager取消缓存策略

APP开中经常用到ViewPager+Fragment+FragmentPagerAdapter这样的组合,但ViewPager自带缓存策略,所以每次ViewPager都会预加载下一页的内容,这样就导致滑动ViewPager进行切换时,都是加载的不是当前选项页的数据,而是下一个页面数据。那有没有办法干掉ViewPager的预加载功能,方法当然是有,但必须要将v4包下ViewPager的相关代进行修改

2016-08-27 13:41:44 1978

原创 ViewPager 3D翻转

利用PageTransformer实现ViewPager3D翻转 mDensity = getResources().getDisplayMetrics().density; mViewPager.setOffscreenPageLimit(2);//缓存两页,此处必须设置 mViewPager.setPageTransformer(true,newFlipPagerTransformer())

2016-08-27 13:40:40 558

原创 ViewPager 指示器

项目需要一个ViewPager的指示器,发现Android联系人中有该控件,于是抽取出来分享给大家:ViewPagerTabs .java:public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener { ViewPager mPager; privat

2016-08-27 13:39:55 651

原创 Volley上传文件

Volley上传文件:public class UploadFileRequest extends Request<JSONObject> { public static final String TAG = UploadFileRequest.class.getSimpleName(); private static final String CHARSET = "utf-8"; //

2016-08-27 13:38:42 490

原创 Volley上传图片

Volley以流的形式上传图片,参考了某大神代码public class PostUploadRequest extends Request {public static final String TAG = PostUploadRequest.class.getSimpleName();private static final String CHARSET = "utf-8"; //设置编码St

2016-08-27 13:37:44 496

原创 RecyclerView 添加头部和尾部,并实现Item的点击事件

RecyclerView是Android中新加入的控件,用来替换ListView和GridView,但在使用时也存在一些不如意的地方,没有Item的点击事件,不能添加头部和尾部,本文就此来实现这些功能: 1.我们先看看ListView是如何添加头部和尾部的,public void addHeaderView(View v, Object data, boolean isSelectable) {

2016-08-27 13:36:26 703

原创 Android仿淘宝购物车

最近项目需要实现类似淘宝购物车的功能,仿了一个,直接上代码:public class MainActivity extends Activity implements OnCartListener, View.OnClickListener { private static final boolean DEBUG = true; private static final String

2016-08-27 13:35:11 1634

原创 Toolbar自定义布局

Toolbar如何使用想必大家清楚地很,实际开发中标题栏的样式各色各样,因此其基本样式便不能满足我们的需求,这就需要我们自定义布局。打开ToolBar源码我们发现它继承ViewGroup,这就表示我们可以把它当做一个存放控件的容器。 <android.support.v7.widget.Toolbar android:layout_width="match_parent"

2016-08-27 13:31:57 608

原创 SQLite操作——Android

SQLite是一个功能全面的轻量关系型数据库,支持SQL语法,Android系统中SQLiteDatabase类封装了操作数据库的API。在Android中使用SQLite的步骤: 1.创建数据库只需要继承SQLiteOpenHelper类,实现构造器,onCreate(),onUpgrad(); ①构造器中需要四个参数(Context 、数据库的Name、游标工厂(可为null)、数据库

2016-08-27 13:29:52 552

原创 Unity3D性能优化 (五)——UI

一、DrawCall优化 ①UI层级 三张图对比发现场景中UI的数目一样,布局有变化,导致了其DrawCall数目不一样。当出现重叠时,会影响空间拓扑关系,从而影响了Unity对DrawCall的优化。 所以UI布局时,同一深度的UI(Item)不要出现重叠。 在实际应用中如背包系统,上面两张图由于第一张的Image偏大,导致DrawCall的增加②精灵打包 通过设置Packi

2016-08-27 12:13:21 8245 2

原创 Unity3D性能优化(四)——图片资源

1.支持的图片格式 jpg : 有损压缩 文件小 不支持透明 png: 无损压缩 文件小 支持透明 tag:无所压缩 文件大 支持透明 dds : 无损压缩 文件最小 支持透明 不支持iOS2.导入Unity的图片为什么有些会变大? 图

2016-08-27 12:00:52 4665

原创 Unity3D使用3DMAX的美术资源时注意点

一、关于Transform默认数值 1.3DMax使用默认导出模型,直接导入到Unity中Transform—>Rotation为-90度? 3DMax中为Z轴向上,默认道导出时设置为Y轴朝上,模型的轴会绕X轴旋转90度,达到Y轴朝上的效果2.3DMax导出模型,导入到Unity中Transform—>Position不为0? 3Dmax建造模型时,没有将位置设置到世界坐标系原点。3.3D

2016-08-25 23:47:16 2646

原创 Unity3D如何实现跨平台

1.使用Mono,将编译代码实现跨平台运行。 2.使用PhysX(NVIDIA),实现物理系统(Physics Powered)跨平台 3.使用OpenGL、DX图形学接口,实现渲染的跨平台

2016-08-25 23:36:44 1063

原创 Unity3D性能优化(三)——DrawCall

1.什么是DrawCall? CPU调用一次图形学接口(OpenGL、DX)称为一个DrawCall。 2.图像在计算机显示的过程? CPU——->图形学接口———>GPU 3.为什么降低DrawCall可以提升性能? 性能提升表现在流畅度上,要保证流畅度,就需要达到一定的FPS(帧率),即一秒钟需要播放一定量的画面,当每帧DrawCall较高时,就表示CPU调用图形学的接口次数高,花费的

2016-08-25 23:29:45 1649

原创 Unity3D性能优化(二)

一、GPU: (瓶颈) 受供给比率或内存带宽的限制–》降低显示分辨率 (非瓶颈)处理顶点过多,顶点的个数由GPU以及顶点着色器的复杂成都决定 手机:主要图形不超过10万个 电脑: 1000万①优化模型几何体 a.切勿使用过多的三角形 b.尽量降低UV贴图接缝和硬边缘数目(顶点增加一倍) ②光照性能—使用光照贴图“烘焙”一次静态

2016-08-25 23:13:30 625

原创 HTTP

HTTP是一种无状态的协议,一次请求、响应周期完成后,TCP连接就断了。 因此HTTP协议(旧版)无法保持用户与服务器端的会话,为了能使无状态的HTTP协议支持会话状态, Server端给访问用户发放临时号码牌(Session ID),并相应存储会话状态(Session)。1.Session ID如何分配和使用? 客户端获取HTTP Response时,服务器分配一个Session ID放入R

2016-08-24 22:52:27 510

原创 TCP、UDP、HTTP、Socket的区别

关于网络通信我们不得不提一下OSI模型,它有7层结构,从上往下依次为应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。 TCP/IP协议是因特网整个TCP/IP协议族,简化了OSI模型,分成了四层:应用层、传输层、网络层、网络接口层。我们平时提到的IP属于网路层的协议,TCP、UDP属于传输层的协议,Http、Https属于应用层的协议。 TCP: 是一种面向连接的、

2016-08-21 22:07:19 417

原创 设计模式——适配器(Unity3D中的应用)

Adapter(适配器):转接1.从复用出发,是使用继承还是组合,关心类与类之间的关系 2.复用已有的功能,但已有的功能接口不是客户端想要的。

2016-08-15 23:50:32 477

原创 设计模式——外观(Unity3D中的使用)

外观:向导 1.系统与系统间的交互,系统的代表 2.解决层次的依赖关系例如: 技能系统,任务系统,各个系统提供一个向导对外访问,简化调用流程。

2016-08-15 23:49:06 365

原创 设计模式——桥接(Unity3d中应用)

桥接: 连接两端的变化 1.主体自身有变化(会有派生) 主体关联部分的抽象 主体与部分是桥接 2.部分也有变化(会有派生) 3. 解决主体的派生类与部分的派生类的关系 主体与部分的抽象层建立桥接关系 4.解决排列组合 5.如果主体自身无派生,就变为策略模式游戏中中: 技能释放器 与 攻击选择器、对自身影响效果、对敌人影响效果

2016-08-15 23:47:33 640

原创 设计模式——装饰者(Unity3D中的应用)

装饰者:包装 为某些对象动态附加功能 使用派生可以扩展一个类的行为,但是无法单独扩展某个或者某些对象的行为,在类的设计上采用装饰者模式可以实现对某个对象扩展功能。比如:在ARPG中,武器和装饰物就采用该模式扩展了武器的行为,比如剑上镶嵌一颗宝石使得宝剑在基础攻击功能上增加使敌人产生眩晕效果,你可能会想只要在剑的类中添加一个眩晕方法不就行了吗,但是这样做后,所有

2016-08-15 23:38:03 1637

原创 设计模式——建造者Build(Unity3D中应用)

Build(建造者模式) 构建与表示分离 与工厂模式不同的是:工厂注重在于创建,Builder注重在于构建(创建细节)

2016-08-14 16:26:23 670

原创 设计模式——原型(Unity3D中应用)

原型 Prototype 对象间数据拷贝(深拷贝,浅拷贝)

2016-08-14 16:23:54 1087

原创 设计模式——工厂(Unity3D中的应用)

客户端简化对象的创建过程 创建与表示分离静态(简单)工厂(Switch...case变庞大) 改进:(通过反射解决Switch惊悚现身)工厂方法 (多选一)(工厂实现类增多,平行继承体系)(废弃) 抽象工厂(多选多 成系列创建)(平行继承体系) 改进:(简单工厂方式实现抽象抽象工场思维,利用反射) 配置注入 设置注入 构造注入

2016-08-14 09:32:07 2548

原创 设计模式——单例(Unity3D中的应用)

问题:希望一个类型创建一个对象且全局共享(静态公开)(创建一次,多次使用) 控制类型创建对象的数量 解决方案:效果:{ 静态类和单例差别: 静态类: 1.常驻内存利用空间换时间,快(不需要频繁 开辟空间,装载数据),频繁使用 字段代表对象的状态,对象的不同是字段不同,而方法单独存放一份 2.生命周期由系统控制 3.约束类中成员都为静态

2016-08-14 09:26:29 776

Unity DrawCall合并

1.修改Mesh UV 2.GPU Instancing qazxswedcvfrtgbtgbnhyujm,ki

2020-09-21

GPUInstance.zip

利用GPU Instance 配合PropertyBlock优化DrawCall,在共享一个材质的情况下,可以修改属性,达到每个游戏对象表现不同的效果

2019-10-23

Unity调用Android系统相册

Unity调用Android相册,获取到图片,在Unity中调用Android原生应用。

2016-10-23

Unity AI系统

Unity有限状态机

2016-08-28

Android夜间模式

Android实现夜间模式:1.修改theme 2.修改uimode

2016-08-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除