移动游戏开发 unity3d
文章平均质量分 79
即步
博客地址:blog.liujunliang.com.cn
展开
-
Unity Socket网络编程(TCP)
开发工具:Visual Studio、Unity开发语言:C#【服务器端】在VS创建一个C#空项目代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net.Soc原创 2017-01-07 22:45:38 · 20288 阅读 · 15 评论 -
Unity Avatar换装原理实例
本文向大家介绍Unity换装原理及其简单实现首先附上效果图:本文的源码我将上传提供大家下载实现原理:控制角色SkinMeshRenderer组件的mesh、materials、bones属性来实现角色换装在该Demo素材中,主角是由多个网格拼接完成其中网格对象上添加了SkinMeshRenderer组件,并指定了material、mesh、root bone我们原创 2017-05-13 17:53:52 · 11389 阅读 · 1 评论 -
浅谈腾讯热更新开源框架xLua自定义Loader
前几个月腾讯开源了一套热更新、热补丁解决方案,托管在Github,点击进入由于最近有点时间,准备抽出时间学习下,研究了下官方文档,感觉受益颇深之后准备录制一套视频教程来讲解xLua,录制完成后会将链接分享在这篇博文里本文我来介绍xLua的自定义Loader先介绍两种Lua文件加载方法一.执行字符串方法LuaEnv luaenv = new LuaEnv();原创 2017-05-01 16:59:26 · 6247 阅读 · 0 评论 -
Unity游戏开发性能优化(Mesh优化)
游戏开发中,有时一个模型离我们的主摄像机很远时,为了提升渲染效率没必要按原来的三角面数和顶点数继续浪费资源这是我们想通过减少模型的三角面数和顶点数来提升运行性能如下图,依次减少三角面数减少三角面数和顶点数可以叫我们的美术师一并提供给我们做好,但是这样非常麻烦,很耗人力这里推荐大家一个插件资源Simple LOD点击打开链接(链接失效联系作者)该插件一键帮助我们创建多个LOD...原创 2017-04-23 19:56:55 · 8191 阅读 · 5 评论 -
Unity游戏开发性能优化(Sprite优化)
本文向大家介绍Unity Sprite优化通过减少Setpass Calls(Draw calls)数来减少性能消耗直接进入正题我随便在网上找到几张图片,将其拖到Hierachry面板此时运行游戏,观察Game试图下的Stats窗口,此时Setpass calls数为4(包括场景的Setpass calls)我们的方法是将图片打包成一张图片,在游戏运行时,unity只会...原创 2017-04-23 20:45:41 · 7243 阅读 · 0 评论 -
Unity摄像机遮挡剔除(Occlusion Cullings)
在之前很多小伙伴在做游戏优化时发现,为了使摄像机没有看到的部分隐藏起来达到但是使用勾选了摄像器的Occlusion Culling属性还是无法实现目标效果这是因为只是赋予了摄像机具有遮挡剔除功能具体怎么实现遮挡剔除还需要自己手动操作,步骤如下在下图我为了测试,在场景中做如下游戏对象将能被遮挡的游戏对象在Inspect属性面板上设置为静态(Occluder一定要勾选,原创 2017-04-23 22:02:04 · 17063 阅读 · 2 评论 -
Shader实现漫反射、高光反射、纹理映射
使用Unity有一段时间了,越来越发现shader的重要性,之前也有一篇文章提了编写shader基本语法最近重操旧业,准备继续深入学习shader漫反射效果漫反射几何计算公式:Diffuse = 直射光颜色 * max(0,cos夹角(光和法线的夹角) ) Tip:cosθ = 光方向· 法线方向代码如下:Shader "LJL/02_DiffuseVer原创 2017-05-25 13:35:04 · 5002 阅读 · 0 评论 -
Shader实现法线映射、透明效果
法线映射实现原理:按纹理映射方式先获取纹理坐标上的像素颜色值,由于颜色值范围在[0,1],法线值为[-1,1],可以使用UnpackNormal函数获取法线值这里需要注意的是获取的法线值是在切线空间下的值,在使用漫反射公式时,直射光也需要统一转化为在切线坐标下代码如下:Shader "LJL/06-Normal" { Properties { _Co原创 2017-05-26 13:35:08 · 1329 阅读 · 0 评论 -
Shader实现头像遮罩效果
在Unity中有个Mask遮罩逐渐,使用这个组件也可以实现遮罩效果但是我在使用Unity自带的圆形图片时候效果如下:可能是由于遮罩图片的像素问题导致的,大家可以尝试更换一张像素大点的遮罩图片,在这里我就不试验了本文博主在给大家介绍的的编写Shader达到这么一种效果实现原理:计算将圆形以外的顶点的Aphla透明图改为0代码如下:Shader "L原创 2017-05-26 19:32:17 · 3953 阅读 · 6 评论 -
Unity烘焙动态光照实现光源优化
本文使用Unity5.x版本,由于Unity4.x到Unity5.x更换了光照引擎,所以本文内容只适合于Unity5.x版本本文向大家介绍Unity烘焙动态光照来实现光源优化什么是动态光源?Unity灯光默认是实时光照,也就是说物体在灯光下不同位置产生不同灯光灯光效果什么是烘焙动态光源?由于动态光源在实时光照下会大量的Setpass Calls(Draw Calls)为了减...原创 2017-04-26 13:41:12 · 14464 阅读 · 0 评论 -
Unity异步加载场景与加载进度条
异步加载场景分为A、B、C三个场景A场景是开始场景;B场景是加载场景(进度条加载显示);C场景是目标场景在A场景中添加一个按钮,触发函数://异步加载新场景public void LoadNewScene(){ //保存需要加载的目标场景 Globe.nextSceneName = "Scene"; SceneManager.LoadScene("Loading");原创 2017-05-20 17:40:46 · 26752 阅读 · 6 评论 -
全面解析Unity动画系统
动画融合首先需要将角色的动画类型设置为Humanoid(确保下文的Avatar Mask相匹配)在打开Animator窗口后,为角色添加一个默认动画,在这里给的是一个跑动动画运行游戏,此时仅仅是个跑动动画在这里的需求是,下半身依旧保持跑动状态,上半身处于攻击状态,这里就使用到了动画的融合(当然可以要求美术来完成,但是使用动画融合可以帮助我们来解决这一需求)原创 2017-05-21 16:28:59 · 18057 阅读 · 0 评论 -
Unity3d腾讯手游热更新方案Xlua编程
上次简单写了下XLua自定义Load本文接着上一篇文章内容全面介绍Unity3d下的XLua编程加载Luausing System.Collections;using System.Text;using System.Collections.Generic;using UnityEngine;using XLua;public class LoadLua : MonoBehaviour原创 2017-11-10 17:20:31 · 1659 阅读 · 0 评论 -
Unity3d利用A*寻路算法实现寻路模拟
这里我引用一篇文章来介绍A*算法文章内容如下 如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块 (用 B 表示) 是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个的小方块. 二维数组在游戏中的应用是很多的, 比如贪吃蛇和俄罗斯方块基本原理就是移动方块而已. 而大型 游戏的地图, 则是将各种"地貌原创 2017-11-03 16:29:18 · 18065 阅读 · 6 评论 -
Unity3d描边框效果
原文内容:blog.liujunliang.com.cnUnity3d描边框效果网上有很多,大多是使用Shader来实现的本文介绍使用Collider来实现这么一种效果效果图如下原创 2017-11-06 13:14:35 · 3419 阅读 · 3 评论 -
Unity3d使用UGUI开发原生虚拟摇杆
在Unity3d中开发虚拟摇杆方式有比较多,可以使用EasyTouch、FairyGUI等插件来开发。本文给大家介绍使用Unity3d的原生UGUI来开发出自己的虚拟摇杆,这样可以减少游戏资源包的大小。先展示下效果图:现在开发我们的开发创建一个Image1,并且在Image1创建一个子对象Image2在Image1中挂载一个自定义脚本,这里我命名为Joystick脚本代码如下using Syste...原创 2018-04-17 11:22:44 · 6852 阅读 · 6 评论 -
固定渲染管线Shader
固定渲染管线是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合T&L管线可以被渲染状态控制,矩阵,光照及采制参数固定渲染管线一般用于Shader在老显卡无法显示时的Fallback(在Shader的SubShader都无法使用的时候调用)变量小括号写法是固定写法大括号写法是变量写法,可以传一个自定义变量进去Shader "Custom/FixFunc原创 2017-12-03 16:38:17 · 1350 阅读 · 0 评论 -
Unity实现众多平台一键社会化分享(ShareSDK)
本文介绍在游戏中向好友分享图片、链接等数据使用ShareSDK可以实现多个平台的分享,比如新浪、支付宝、QQ、QQ空间、领英等几十中常用应用的好友分享并且博主已经打包实现到了安卓,源码我上传了,需要的话可以下载参考!!!点击打开链接开发环境的准备进入ShareSDK官网,下载ShareSDK For Unity(我也上传了一份点击打开链接)按如下图路径把Plugins目...原创 2017-04-21 23:28:43 · 9691 阅读 · 1 评论 -
Unity实现UI渐变效果(UGUI)
在做背包系统时,在提示面板中想实现的更加炫酷点,决定使用渐变效果来提示档次渐变效果实现采用改变该UI的透明度来控制其显示和隐藏在UI对象上添加Canvas Group组件通过控制Alpha改变其透明度来控制显示和隐藏(Alpha=0隐藏;Alpha=1显示)(Blocks Raycasts=true可以交互;Blocks Raycasts=false无法交互)添加一个脚本...原创 2017-04-19 20:50:57 · 23169 阅读 · 4 评论 -
Protobuf在Unity中的应用
Protobuf是一种数据交换格式,由于它是一种二进制的格式,比使用xml 进行数据交换快许多可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域开发工具:VS、UnityProtobuf官网:点击打开链接资源提供:【VS项目】使用VS新建一个C#空项目右键点原创 2017-01-08 19:55:00 · 3131 阅读 · 0 评论 -
连接MySQL Connector(.net)
MySQL Connector封装了MySQL API,通过调用MySQL Connector接口更加方便访问MySQL数据库【安装MySQL Connector】在安装MySQL时可以添加安装MySQL Connector选项在这里我通过VS Nuget程序包下载安装MySQL Connector中的Mysql.Data1、右键项目工程,选择管理Nuget程序包2、搜原创 2017-02-23 22:44:56 · 5011 阅读 · 0 评论 -
Unity数据的加密与解密
好久没有更新博客了在这里分享在Unity中对数据的加密与解密的处理加密与解密一般可以应用到文件配置,但是我主要运用到客户端与服务器端交互时候【加密】using UnityEngine;using System.Collections;using UnityEngine.UI;using System;using System.Text;using System.S原创 2017-03-01 17:36:31 · 5412 阅读 · 1 评论 -
Unity对象池技术
在游戏中,常常需要对有些游戏对象进行反复的创建销毁,比如游戏中的子弹,敌人反复的创建与销毁将浪费一定的系统资源引入对象池技术,可以将暂时不需要用到游戏对象放在对象池(缓冲区),当需要使用到时再从对象池中提取这里我简单学习了下关于对象池,现在分享出来,写下自己的对对象池的理解using UnityEngine;using System.Collections.Generic原创 2017-03-02 14:00:31 · 1415 阅读 · 0 评论 -
Unity制作技能冷却效果
在制作ARPG等游戏时,主角的技能往往需要的到冷却才能释放本文介绍在Unity中如何简单实现技能冷却效果【Mask组件的使用】首先制作技能图标创建一个UI->ImageImage选择Unity自带的圆形图片在Image下添加一个按钮作为子节点,并适当放大按钮选择一张精灵图片作为按钮图案在Image下添加Mask组件Mask中文名叫面具该组件的作用是 只显示I原创 2017-03-04 21:10:08 · 11420 阅读 · 1 评论 -
Lua与.Net互调
Lua是一种很好的扩展性语言,由C语言编写,Lua解释器被设计成一个很容易嵌入到宿主程序的库我们可以使用LuaForWindows或则LuaInterface得到LuaInterfaxe,dll文件在这里我提供LuaInterface包,方便大家下载【开发环境的配置】新建一个C#控制台应用程序解压下载下来的luainterface资源包,根据如下图的路径找到三个.dll原创 2017-03-21 19:02:30 · 4732 阅读 · 1 评论 -
Unity中的AssetBundle
我在以前写过一篇文章关于制作与加载AssetBundle,但是觉得那个有些由于版本过低,有些方法以被弃用了,在这里我从新分享了一篇工具:unity5.5【AssetBundle的制作】以制作一个Cube预制体为例,将Cube打包到AssetBundle文件里点击Cube,在属性面板上底下按如下图操作,可以自行命名在Assets文件夹新建一个Editor文件目录,并创建一原创 2017-03-21 21:32:20 · 2458 阅读 · 0 评论 -
Unity3D自定义资源配置文件
配置资源文件估计大家了解很多,比如XML、JSON、Protobuf、Excel、TXT等等在开发过程中,将游戏数据序列化到配置文件中,项目运行时读取配置文件中的数据本文另外介绍一个Unity的配置文件(.asset)该配置文件的优点:当我们需要将游戏资源里的贴图(Texture)、游戏对象(Gameobject)等预设体保存到配置文件时,这时我们就可以使用该配置文件但是当关联...原创 2017-04-08 16:42:13 · 8015 阅读 · 0 评论 -
Unity3D实现多语言本地化
一款游戏可能有多个语言版本,各个版本的语言不相同,有中文的、英文的等多种版本在开发时,我们一般将关键字翻译到一个文本文件当需要对游戏的关键字翻译后,只需要对文件进行解析做相关处理接下来我做一个简单Demo,介绍创建一个简单语言本地化项目先在Scene视图下创建两个按钮,如下图在Project视图下新建一个Resources文件夹在Resources文件夹下新建两个名为...原创 2017-04-07 15:59:02 · 14386 阅读 · 0 评论 -
StrangeIoc MVCS游戏框架
StrangeIoC框架是MVC框架的扩展采用一种MVCS框架,在Unity3d中得到很好的应用下图是StrangeIoC的框架图:【ROOT模块】开启整个框架启动的模块【MVCS Context模块】为了减小整个框架的耦合性,可以将各个模块之间进行依赖绑定可以实现注入绑定(injectionBinder)、命令绑定(commandBinder)、传递绑定(comm...原创 2017-04-02 12:56:27 · 4942 阅读 · 3 评论 -
ULua热更新
工具:VS、Unity5.2.3f、LuaStudio(方便编写Lua)、SimpleFramework_UGUI-0.3.7.2建议下载我写的一个Demo点击打开链接和本文一起参考!!!Demo介绍如何使用uLua对UI进行热更新【框架结构介绍】Editor:一些编辑器扩展的脚本代码Example:一个热更新例子介绍Lua:实现热更新的核心lua代码Sourc原创 2017-03-24 17:56:52 · 2718 阅读 · 6 评论 -
UI框架(UGUI)
整个游戏的工程源码下载链接:点击打开链接可以参考的写的Demo和本文章来学习毕竟有些细节问题在文章中不能一一说到工具:VS2010、Unity5.2.3f先介绍整个Demo的主面板其中任务、技能、符文等等都是按钮,点击按钮会生成相应面板【Protobuf的生成与解析】要使得框架的可扩展性与自适应性,我把各个面板的名字与路径配置到protobuf文件在VS中...原创 2017-03-27 08:41:30 · 8709 阅读 · 7 评论 -
Unity实现物体镜像
通过一个模型的MeshFilter和MeshRenderer组件来获取模型的顶点与网格信息按指定轴向、指定距离克隆一个出来【生成镜像顶点】将顶点位置按轴方向取反方向,返回各个顶点信息private Vector3[] GenerateVertices(Vector3[] backVertices) { Vector3[] newVertices ...原创 2017-03-27 13:13:39 · 11971 阅读 · 0 评论 -
Unity背包系统(二)背包UI设计
上篇文章介绍了背包系统开发中需要使用到数据存储本人使用并介绍LitJson进行生成、解析Json文件在本文介绍背包系统的UI设计大家别小瞧这个UI设计,一个好的UI设计方便我们管理,并且对代码扩展性与自适应性起到至关重要作用【背包面板的设计】先来看看UI图(图片自己在网上找到,不太好看)该背包U里面有很多矩形方框,我叫做物品槽,用于存放物品该背包UI目录原创 2017-04-19 19:20:00 · 9168 阅读 · 2 评论 -
Unity背包系统(一)使用LitJson库创建并解析Json文件
最近在做一个背包系统,搭建一个背包系统框架,方便代码在以后的游戏开发中直接使用该背包系统也很好地扩展为锻造系统、商店系统等等在这篇文章中我介绍下使用LitJson这个库来创建并解析Json文件(在这系列文章结束篇我会把这些子项目串联起来,介绍实现整个背包系统)背包系统系列文章会陆续更新,如果大家感兴趣的话可以关注下的博客,同时提供整个工程源码方便大家下载来学习首先下载LitJson...原创 2017-04-19 18:12:36 · 8884 阅读 · 4 评论 -
Unity游戏开发实现短信验证(SMSSDK)
在游戏开发中登录、修改密码等情况下往往需要使用短信验证本文介绍在Unity中访问SMSSDK来实现短信验证这一功能实现了在Android平台上运行,我已经上传了本文源码点击打开链接,大家可以下载参考学习(含APK、SMSDK)大家也可以访问其官网来下载最新SMSSDK准备开发环境解压下载下来的SMSSDK,按下图路径将Plugins目录拖到Unity Asset目录下原创 2017-04-22 12:49:35 · 9582 阅读 · 1 评论 -
Shader和3D图形渲染管线(Render Pipeline)
博客地址:blog.liujunliang.com.cn最近在系统学习Shader,发现编写之前需要对渲染绘图管线流程有一个系统的认知才能学的更加深刻网上查了一篇教程发现内容并不是很多,本文将自己学习的内容以尽可能的简单易懂的方式记录下来并分享给大家大家也可以关注我的博客,可以和我一起学习Shader编程和Unity3d游戏开发。开始本文的学习!!!定义渲染管线也称渲染流水线,是显示芯片内部处理图原创 2017-12-01 16:25:10 · 3421 阅读 · 0 评论