游戏开发
文章平均质量分 75
即步
博客地址:blog.liujunliang.com.cn
展开
-
Unity3D自定义资源配置文件
配置资源文件估计大家了解很多,比如XML、JSON、Protobuf、Excel、TXT等等在开发过程中,将游戏数据序列化到配置文件中,项目运行时读取配置文件中的数据本文另外介绍一个Unity的配置文件(.asset)该配置文件的优点:当我们需要将游戏资源里的贴图(Texture)、游戏对象(Gameobject)等预设体保存到配置文件时,这时我们就可以使用该配置文件但是当关联...原创 2017-04-08 16:42:13 · 8012 阅读 · 0 评论 -
Unity3d MVCS游戏框架Robotlegs
最近在一个新项目中需要使用Robotlegs这套框架来重构代码博主学习了下这套开源框架,还是很容易上手的源码下载地址点击打开链接博主学习了这套框架后也写了一个Demo本文内容是围绕这个Demo来写的,大家可以下载参考Demo来学习点击打开链接框架入口using System.Collections;using System.Collections.Generic;usi原创 2017-07-02 18:01:45 · 4578 阅读 · 1 评论 -
Unity实现卷纸浏览效果
首先附上效果图:在网上看到了一个卷纸效果,感觉很有趣,自己实现了一下,这个Demo源码我也将上传先设计每个Image对象的的特定属性及函数创建一个脚本,将其挂载到每个Image对象上using System.Collections;using System.Collections.Generic;using UnityEngine;public clas原创 2017-05-11 19:24:16 · 6941 阅读 · 5 评论 -
实例解析OOP程序设计七大设计原则(一)
开闭原则(Open-Closed Principle,OCP)开闭原则是这七大设计原则中最常见、最基本的开闭原则定义:软件实体对扩展是开放的,但对修改是关闭的。意思就是说在不修改软件实体的基础上去扩展其他功能。开闭原则实例:比如实现一个绘制图线的功能设计方案如下图所示用户类中直接调用画直线类,但是如果有一个新需求,要求我们画斜线或者曲线的话,这时就需要修改画直线类中原创 2017-07-25 11:24:29 · 4818 阅读 · 0 评论 -
实例解析OOP程序设计七大设计原则(二)
接口隔离原则(Interface Segregation Principle,ISP)使用多个专门接口来取代一个统一的接口,一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中。接口隔离原则核心:不应该强迫客户端程序依赖他们 不需要的使用方法接口隔离原则实例:比如一个系统中有一个大的接口,这个接口包含了GameobjectA、Ga原创 2017-07-25 17:24:45 · 1470 阅读 · 0 评论 -
OpenGL开发学习指南二(glfw+glad)
在上一篇文章中博主介绍了freeglut+glew的环境配置,本文介绍glfw+glad的环境配置本系列教程将使用本文的opengl开发库开发工具VS2017glfw源码:源码地址CMake(将源码生成自己想要的IDE工程):下载地址glad:点击打开链接当然了,这些源码文件包括本文的工程代码我都将上次,方便大家学习环境配置首先需要生成glfw 库文件打开C原创 2017-08-16 10:19:51 · 16023 阅读 · 3 评论 -
Unity3d使用UGUI开发原生虚拟摇杆
在Unity3d中开发虚拟摇杆方式有比较多,可以使用EasyTouch、FairyGUI等插件来开发。本文给大家介绍使用Unity3d的原生UGUI来开发出自己的虚拟摇杆,这样可以减少游戏资源包的大小。先展示下效果图:现在开发我们的开发创建一个Image1,并且在Image1创建一个子对象Image2在Image1中挂载一个自定义脚本,这里我命名为Joystick脚本代码如下using Syste...原创 2018-04-17 11:22:44 · 6851 阅读 · 6 评论 -
固定渲染管线Shader
固定渲染管线是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合T&L管线可以被渲染状态控制,矩阵,光照及采制参数固定渲染管线一般用于Shader在老显卡无法显示时的Fallback(在Shader的SubShader都无法使用的时候调用)变量小括号写法是固定写法大括号写法是变量写法,可以传一个自定义变量进去Shader "Custom/FixFunc原创 2017-12-03 16:38:17 · 1348 阅读 · 0 评论 -
Shader和3D图形渲染管线(Render Pipeline)
博客地址:blog.liujunliang.com.cn最近在系统学习Shader,发现编写之前需要对渲染绘图管线流程有一个系统的认知才能学的更加深刻网上查了一篇教程发现内容并不是很多,本文将自己学习的内容以尽可能的简单易懂的方式记录下来并分享给大家大家也可以关注我的博客,可以和我一起学习Shader编程和Unity3d游戏开发。开始本文的学习!!!定义渲染管线也称渲染流水线,是显示芯片内部处理图原创 2017-12-01 16:25:10 · 3419 阅读 · 0 评论 -
XLua热补丁方案(HotFix)
本篇文章给大家介绍使用腾讯开源热更新框架XLua进行补丁开发XLua地址:官方地址XLua编程:教程链接XLua HotFix环境配置1.将下载下来的xLua-master资源包打开2.将Assets目录下的文件全部拷贝到你的游戏工程的Assets目录下3.添加HOTFIX_ENABLE宏打开该特性(在Unity3D的File->Build Setting->Scripting Def...原创 2018-06-11 21:23:18 · 4168 阅读 · 0 评论 -
UE4中的相机操控方案
在UE4中的相机操控方案可能会比U3D中的方式要稍微麻烦一点点,今天分享下UE4中相机的几种操控方式在本文之前先创建一个继承自GameModeBase和一个继承自APawn类,在这里博主分别命名为CameraGameModeBase、CameraCharacter在CameraGameModeBase构造函数里将CameraCharacter设置为默认Apawn,代码如下:Defau...原创 2018-10-09 22:13:20 · 8683 阅读 · 2 评论 -
解决UE4 Slate ModalWindow无法交互问题
总体来说本文会解决两种问题TSharedPtr<SWindow> Window;SAssignNew(Window, SWindow)[ SNew(MyWidget)];FSlateApplication::Get().AddModalWindow(Window.ToSharedRef(), GEngine->GameViewport->GetWin...原创 2018-10-09 22:12:45 · 1638 阅读 · 2 评论 -
Unity3d分页系统
在有些情况下,有很多列表不能一次性显示完整,需要对其进行分页处理我自己也写了一个分页系统,在这里记录下来,方便以后直接拿来使用这篇文章Demo也将上传给大家下载参考:先展示下效果图:·效果图一·效果图二总的来说,要考虑到的逻辑情况还是有点的工程目录结构如下图:在每个UIPage下有一个Image框,用来编辑当前是那一页,默认activa原创 2017-07-10 16:09:59 · 4029 阅读 · 3 评论 -
Unity3d实现扭动挤压浏览效果
最近的项目中,想做到一种能够吸引眼球的一种角色选择浏览效果最后最终实现了下按如下图这么一种浏览效果:·效果图一·效果图二可能要实现这么一种效果用动画插件会很快,但总感觉有点大材小用这里我向大家分享一个极简方式来实现这么一种效果目录结构如下其中Items有4个Image子节点在父节点Items下添加如下图横向布局组件原创 2017-07-08 23:49:12 · 4553 阅读 · 2 评论 -
Unity3D实现多语言本地化
一款游戏可能有多个语言版本,各个版本的语言不相同,有中文的、英文的等多种版本在开发时,我们一般将关键字翻译到一个文本文件当需要对游戏的关键字翻译后,只需要对文件进行解析做相关处理接下来我做一个简单Demo,介绍创建一个简单语言本地化项目先在Scene视图下创建两个按钮,如下图在Project视图下新建一个Resources文件夹在Resources文件夹下新建两个名为...原创 2017-04-07 15:59:02 · 14383 阅读 · 0 评论 -
Unity背包系统(二)背包UI设计
上篇文章介绍了背包系统开发中需要使用到数据存储本人使用并介绍LitJson进行生成、解析Json文件在本文介绍背包系统的UI设计大家别小瞧这个UI设计,一个好的UI设计方便我们管理,并且对代码扩展性与自适应性起到至关重要作用【背包面板的设计】先来看看UI图(图片自己在网上找到,不太好看)该背包U里面有很多矩形方框,我叫做物品槽,用于存放物品该背包UI目录原创 2017-04-19 19:20:00 · 9167 阅读 · 2 评论 -
Unity背包系统(一)使用LitJson库创建并解析Json文件
最近在做一个背包系统,搭建一个背包系统框架,方便代码在以后的游戏开发中直接使用该背包系统也很好地扩展为锻造系统、商店系统等等在这篇文章中我介绍下使用LitJson这个库来创建并解析Json文件(在这系列文章结束篇我会把这些子项目串联起来,介绍实现整个背包系统)背包系统系列文章会陆续更新,如果大家感兴趣的话可以关注下的博客,同时提供整个工程源码方便大家下载来学习首先下载LitJson...原创 2017-04-19 18:12:36 · 8883 阅读 · 4 评论 -
Unity游戏开发实现短信验证(SMSSDK)
在游戏开发中登录、修改密码等情况下往往需要使用短信验证本文介绍在Unity中访问SMSSDK来实现短信验证这一功能实现了在Android平台上运行,我已经上传了本文源码点击打开链接,大家可以下载参考学习(含APK、SMSDK)大家也可以访问其官网来下载最新SMSSDK准备开发环境解压下载下来的SMSSDK,按下图路径将Plugins目录拖到Unity Asset目录下原创 2017-04-22 12:49:35 · 9581 阅读 · 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 · 23163 阅读 · 4 评论 -
Unity实现众多平台一键社会化分享(ShareSDK)
本文介绍在游戏中向好友分享图片、链接等数据使用ShareSDK可以实现多个平台的分享,比如新浪、支付宝、QQ、QQ空间、领英等几十中常用应用的好友分享并且博主已经打包实现到了安卓,源码我上传了,需要的话可以下载参考!!!点击打开链接开发环境的准备进入ShareSDK官网,下载ShareSDK For Unity(我也上传了一份点击打开链接)按如下图路径把Plugins目...原创 2017-04-21 23:28:43 · 9688 阅读 · 1 评论 -
Unity Avatar换装原理实例
本文向大家介绍Unity换装原理及其简单实现首先附上效果图:本文的源码我将上传提供大家下载实现原理:控制角色SkinMeshRenderer组件的mesh、materials、bones属性来实现角色换装在该Demo素材中,主角是由多个网格拼接完成其中网格对象上添加了SkinMeshRenderer组件,并指定了material、mesh、root bone我们原创 2017-05-13 17:53:52 · 11388 阅读 · 1 评论 -
Unity游戏开发性能优化(Mesh优化)
游戏开发中,有时一个模型离我们的主摄像机很远时,为了提升渲染效率没必要按原来的三角面数和顶点数继续浪费资源这是我们想通过减少模型的三角面数和顶点数来提升运行性能如下图,依次减少三角面数减少三角面数和顶点数可以叫我们的美术师一并提供给我们做好,但是这样非常麻烦,很耗人力这里推荐大家一个插件资源Simple LOD点击打开链接(链接失效联系作者)该插件一键帮助我们创建多个LOD...原创 2017-04-23 19:56:55 · 8189 阅读 · 5 评论 -
Unity游戏开发性能优化(Sprite优化)
本文向大家介绍Unity Sprite优化通过减少Setpass Calls(Draw calls)数来减少性能消耗直接进入正题我随便在网上找到几张图片,将其拖到Hierachry面板此时运行游戏,观察Game试图下的Stats窗口,此时Setpass calls数为4(包括场景的Setpass calls)我们的方法是将图片打包成一张图片,在游戏运行时,unity只会...原创 2017-04-23 20:45:41 · 7238 阅读 · 0 评论 -
Unity摄像机遮挡剔除(Occlusion Cullings)
在之前很多小伙伴在做游戏优化时发现,为了使摄像机没有看到的部分隐藏起来达到但是使用勾选了摄像器的Occlusion Culling属性还是无法实现目标效果这是因为只是赋予了摄像机具有遮挡剔除功能具体怎么实现遮挡剔除还需要自己手动操作,步骤如下在下图我为了测试,在场景中做如下游戏对象将能被遮挡的游戏对象在Inspect属性面板上设置为静态(Occluder一定要勾选,原创 2017-04-23 22:02:04 · 17047 阅读 · 2 评论 -
Unity烘焙动态光照实现光源优化
本文使用Unity5.x版本,由于Unity4.x到Unity5.x更换了光照引擎,所以本文内容只适合于Unity5.x版本本文向大家介绍Unity烘焙动态光照来实现光源优化什么是动态光源?Unity灯光默认是实时光照,也就是说物体在灯光下不同位置产生不同灯光灯光效果什么是烘焙动态光源?由于动态光源在实时光照下会大量的Setpass Calls(Draw Calls)为了减...原创 2017-04-26 13:41:12 · 14463 阅读 · 0 评论 -
Visual Studio Code打开UE4工程的正确方式
下载VS Code,并安装下图两个插件中途安装时候可能需要要求安装.Net SDK,按提示安装一下即可打开工程的Editor模式,打开编辑器偏好设置修改为VS Code作为项目的代码编辑器用VS Code便可打开工程了打开VS Code即可编译我们的UE4工程了!...原创 2019-07-22 15:02:59 · 5394 阅读 · 0 评论