- 博客(121)
- 资源 (56)
- 问答 (1)
- 收藏
- 关注
原创 Visual Studio Code打开UE4工程的正确方式
下载VS Code,并安装下图两个插件中途安装时候可能需要要求安装.Net SDK,按提示安装一下即可打开工程的Editor模式,打开编辑器偏好设置修改为VS Code作为项目的代码编辑器用VS Code便可打开工程了打开VS Code即可编译我们的UE4工程了!...
2019-07-22 15:02:59
5607
原创 UE4中的相机操控方案
在UE4中的相机操控方案可能会比U3D中的方式要稍微麻烦一点点,今天分享下UE4中相机的几种操控方式在本文之前先创建一个继承自GameModeBase和一个继承自APawn类,在这里博主分别命名为CameraGameModeBase、CameraCharacter在CameraGameModeBase构造函数里将CameraCharacter设置为默认Apawn,代码如下:Defau...
2018-10-09 22:13:20
8816
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
2163
2
原创 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
4238
原创 Unity3d使用UGUI开发原生虚拟摇杆
在Unity3d中开发虚拟摇杆方式有比较多,可以使用EasyTouch、FairyGUI等插件来开发。本文给大家介绍使用Unity3d的原生UGUI来开发出自己的虚拟摇杆,这样可以减少游戏资源包的大小。先展示下效果图:现在开发我们的开发创建一个Image1,并且在Image1创建一个子对象Image2在Image1中挂载一个自定义脚本,这里我命名为Joystick脚本代码如下using Syste...
2018-04-17 11:22:44
6917
5
原创 3D数学基础与三维渲染
博客地址:blog.liujunliang.com.cn本文使用C# Winform开发工具运用3D数学基础实现三维渲染主要有三个步骤:顶点的变换、矩阵的变换、模拟光照三维渲染本文源码地址:下载链接顶点的变换首先实现在一个窗口绘制一个三角形,让其各个顶点自动旋转让其自动旋转需要使用到旋转矩阵矩阵公式:矩阵与顶点的变换代码如下// 单个顶点的矩阵转换 public Vertex4 M
2018-01-03 21:26:31
3589
1
原创 Vertex Shader中的几何变换
本文给大家介绍几个Vertex Shader中常用的几何变换如果是刚开始接触几何变换内容学起来是比较吃力的!这种思维需要不断的磨合、锻炼对于Shader几何变换我总结成了4个字:并行、时差并行:渲染管线是一系列并行的渲然流水线。通俗来说,每个顶点的计算是同时的。时差:每个顶点会不断的计算(包括颜色、位置等等)。总而言之:并行是指全部顶点同时计算,时差是指每个顶点不断的计算。接下来介绍下几个常用的几
2017-12-27 21:12:03
1143
原创 固定渲染管线Shader
固定渲染管线是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合T&L管线可以被渲染状态控制,矩阵,光照及采制参数固定渲染管线一般用于Shader在老显卡无法显示时的Fallback(在Shader的SubShader都无法使用的时候调用)变量小括号写法是固定写法大括号写法是变量写法,可以传一个自定义变量进去Shader "Custom/FixFunc
2017-12-03 16:38:17
1410
原创 Shader和3D图形渲染管线(Render Pipeline)
博客地址:blog.liujunliang.com.cn最近在系统学习Shader,发现编写之前需要对渲染绘图管线流程有一个系统的认知才能学的更加深刻网上查了一篇教程发现内容并不是很多,本文将自己学习的内容以尽可能的简单易懂的方式记录下来并分享给大家大家也可以关注我的博客,可以和我一起学习Shader编程和Unity3d游戏开发。开始本文的学习!!!定义渲染管线也称渲染流水线,是显示芯片内部处理图
2017-12-01 16:25:10
3532
原创 序列帧动画Shader
编写Shader将一张序列帧动画播放出来效果图如下图所示播放效果如下原理:改变UV大小。随时间改变X轴 Tiling,来显示单个火焰,再改变X轴的Offset来位移纹理切换其他火焰Shader代码// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Custom/UVA
2017-11-28 15:15:32
1788
原创 UV旋转动画Shader
博客地址:blog.liujunliang.com.cnShader效果图如下写在前面实现如上旋转效果可以将整个Texture改变Rotate进行旋转本文通过编写Shader改变UV实现旋转效果在编写Shader之前先补充一个图形学知识一、矩阵乘法·前提:只有第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义·定义二、旋转矩阵博主搜索了下旋转矩阵的公式公式如下图:其中这个x
2017-11-27 21:23:18
2771
1
原创 游戏中的设计模式九(命令模式)
博客地址:blog.liujunliang.com.cn概述在游戏开发中,行为请求者与行为实现者往往是一种紧耦合性请求一命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适对象并把该命令传给相应的对象,该对象执行命令
2017-11-22 10:23:02
1119
原创 游戏中的设计模式八(享元模式)
博客地址:blog.liujunliang.com.cn写在前面在创建一类游戏对象中,往往会有一些属性重复创建占用内存,为了减少创建对象的数量,以减少内存占用和提高性能使用享元模式将一些共同的属性元素分离,比如一类游戏对象的ID、name、攻击力(这里简单设置几个共同属性)设置为享元数据案例分析享元类using System.Collections;using System.Collection
2017-11-21 19:06:00
1175
原创 游戏中的设计模式七(建造者模式)
好久没有更新设计模式系列教程了本文给大家介绍建造者模式博客地址:blog.liujunliang.com.cn写在前面在创建游戏对象时往往一个对象伴随着多个属性或创建逻辑此时为了构建这个复杂的游戏对象将各个部分的逻辑进行分离(与工厂模式最主要的作用区别)案例分析建造者类using System.Collections;using System.Collections.Generic;using
2017-11-20 21:50:58
1924
转载 TCP/IP协议,HTTP协议与webSocket协议区别
http协议(识别数据内容)与webSocket协议同:建立在TCP之上,同http一样通过TCP来传输数据不同:HTTP协议为单向协议,即浏览器只能向服务器请求资源,服务器才能将数据传送给浏览器,而服务器不能主动向浏览器传递数据。分为长连接和短连接,短连接是每次http请求时都需要三次握手才能发送自己的请求,每个request对应一个response;长连接是短时间内保持连接,保持TCP不断开,
2017-11-17 09:35:42
1172
原创 基于Socket的游戏服务器通信框架的设计与实现
博客地址:blog.liujunliang.com.cn开发工具:VS2017、Unity2017本文介绍使用Socket/TCP来开发客户端与服务器端通信框架博主使用过PhotonServer,由于其简单使用,所以本文模仿PhotonServer服务器框架来编写的其中可以参考博主之前写的文章Unity3d与PhotonServer通信、Unity3d Socket网络编程接下来介绍自己编写的一个
2017-11-13 09:19:45
5931
原创 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
1719
原创 Unity3d描边框效果
原文内容:blog.liujunliang.com.cnUnity3d描边框效果网上有很多,大多是使用Shader来实现的本文介绍使用Collider来实现这么一种效果效果图如下
2017-11-06 13:14:35
3516
1
原创 Unity3d利用A*寻路算法实现寻路模拟
这里我引用一篇文章来介绍A*算法文章内容如下 如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块 (用 B 表示) 是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个的小方块. 二维数组在游戏中的应用是很多的, 比如贪吃蛇和俄罗斯方块基本原理就是移动方块而已. 而大型 游戏的地图, 则是将各种"地貌
2017-11-03 16:29:18
18176
6
原创 Unity3d实现有限状态机系统
原文地址:blog.liujunliang.com.cn在之前有过介绍一个可视化有限状态机编辑器插件PlayerMaker在这里也可以在我们的代码中实现一个状态机本文源码地址:点击打开链接首先创建一个脚本,来管理我们的各个状态using System.Collections;using System.Collections.Generic;using UnityEngine;using Sy
2017-10-31 15:33:46
5790
1
原创 PhotonServer MMO游戏开发
原文地址:blog.liujunliang.com.cn上篇文章介绍的PhotonServer实现在MySQL登录验证请求本文继续上篇文章开发,通过PhotonServer来实现一个MMO Demo游戏(持续发送数据包)以下是我对网络游戏开发编程的总结:一、将需要在各个客户端一起显示的数据都发送到服务器端上(主角的移动、动作、技能特效等)二、在PhotonServer中,一个客户端对应一个Clie
2017-10-28 11:57:56
3126
1
原创 Unity3d通过PhotonServer访问MySQL数据库
接着上一篇文章内容继续开发上一片篇文章介绍到NHibernate与数据库交互
2017-10-23 23:10:33
2895
2
原创 NHibernate与MySQL数据库交互(类和表的映射)
原文地址:blog.liujunliang.com.cn如下图是客户端与服务器间的通信流程上篇文章介绍到了PhotonServer服务器与Unity3d游戏客户端数据通信本文就要介绍使用NHibernate与MySQL数据库交互下篇文章准备编写PhotonServer调用NHibernate在
2017-10-22 16:08:21
1791
原创 Unity3d游戏客户端与Photon服务器数据通信
上篇文章介绍到Photon服务器部署本文在上一篇博文的基础上继续介绍使用Unity3d游戏客户端与Photon Server数据通信打开Unity3d2017,新建项目,在Asset目录下新建Plugins文件夹找到Photon SDK目录下的lib文件PhotonUnity3D.dll文件,将其拖动到Unity Plugins目录下新建一个脚本,这里我命名为GamContext,将其挂载到场景空
2017-10-20 16:37:17
4325
原创 PhotonServer游戏服务器部署及日志输出
游戏服务器端框架----PhotonServer开发工具:Unity3d2017、VS2017、PhotonServer SDK首先到官网下载其SDK,下载地址服务器部署将下载下来的SDK解压目录结构如下deploy:部署程序doc:文档lib:存放类库,在接下来的客户端(Unity3d)和服务器端开发需要引用到src-server:Demo源码接下来开始部署自己的游戏服务器打开VS,新建类库在项
2017-10-19 16:22:28
3613
原创 游戏中的设计模式六(模板模式)
博客地址:blog.liujunliang.com.cn写在前面游戏中的各个武器一套攻击动作有固定的步骤,但是每个步骤根据武器对象的不同,而细节的实现不同此时使用模板方法定义一个操作中的方式/算法的骨架,意思就是说在父类里定义一个完成该事情的总步骤每个步骤的具体实现,由子类完成实现,不同子类的实现方式/算法不尽相同模板方法定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不
2017-09-13 16:12:36
784
原创 游戏中的设计模式五(策略模式)
博客地址:blog.liujunliang.com.cn写在前面在游戏中计算各个觉得的攻击值、防御值时,由于各个角色的职业不同,攻击值和防御值计算算法就会不一样通常使用if....else语句来抉择不同类型之间的算法将带来程序复杂和难以维持,当有新的算法或行为时违背开闭原则策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来。委托给不同的对象管理。模式角色环境类:对策略进行二次封装,目的是
2017-09-12 17:58:15
2228
3
原创 【C#】Dictionary通过value获取对应的key值
通过key值获取value值方法想必大家都知道private void GetDicValueByKey() { Dictionary dic = new Dictionary(); dic.Add("1", "1"); dic.Add("2", "2"); dic.Add("3",
2017-09-10 16:25:08
25839
1
原创 游戏中的设计模式四(桥接模式)
写在前面在游戏中的角色和武器,往往一个角色可以装换多种武器,武器也拥有诸多类型当角色需要配备不同武器时候,需要修改角色类,使其配备另外的武器对象这样造成对象与对象之间耦合性高,并且不容易扩展使用桥接模式,将抽象与实现分离,使它们都可以独立地变化案例分析在各个帮派角色中,可以使用倚天剑和屠龙刀,当角色需要切换不同武器时候,就要大量的修改角色类来调用另外的武器使用桥接模式,将抽象与实现分离代码编写角色
2017-08-30 17:53:41
1570
1
原创 Unity3d实现回滚操作(Undo和Redo)
本文实现一个在无需使用Command模式和Momento模式下实现撤销、重做功能源码下载地址:点击打开链接先展示下效果图使用栈方式,将各个操作的撤销/恢复操作存储下来当执行undo和redo操作时,执行栈里面的撤销/恢复操作Demo操作实现using UndoMethods;using UnityEngine;public class MyText : MonoBehaviour{ pr
2017-08-30 12:27:46
8641
原创 游戏中的设计模式三(中介者模式)
写在前面上篇文章讲到外观模式,在外界管理各个子系统时,使用外观模式减少与内部多个子系统模块进行交互,从而降低应用程序的复杂度。本文介绍另外一种设计模式--------中介者模式(又称调停者模式)当我们的多个系统模块之间会有通信,如果系统之间杂乱无章的进行通信数据交互的话,耦合性很高,不容易维护。中介者模式就是解决这种情况,定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不
2017-08-28 11:23:23
1940
1
原创 游戏中的设计模式二(外观模式)
写在前面在游戏中一个场景可能需要与多个系统进行信息交互,比如战斗系统,背包系统,经济系统等在编写代码时候势必要将各个系统之间的通信和依赖降低到尽可能的小这时候适合使用外观模式,将应用程序只能看到外观(facade)对象,不必理会内部的细节对象,从而降低应用程序的复杂度,提高应用程序的可维护性案例分析外观模式整理后这样让外部减少与子系统内多个模块的交互,松散耦
2017-08-22 17:11:41
1650
原创 游戏中的设计模式一(单例模式与状态模式)
这系列文章博主将介绍给大家游戏中常用的设计模式文章并不是纯粹的讲一大堆理论抽象的内容,重点也不再这里。其实设计模式如果大家编写阅读的代码量多的话,自然而然的自己有意思地使用到了。只是没有这么那种系统的意识,所以这系列文章通过一个Unity3d游戏实例让大家感受什么设计模式,设计模式的作用。本文介绍给大家的单例模式以及状态模式写在前面在游戏角色的各个战斗状态(idle,att
2017-08-17 16:16:55
2922
1
原创 OpenGL开发学习指南二(glfw+glad)
在上一篇文章中博主介绍了freeglut+glew的环境配置,本文介绍glfw+glad的环境配置本系列教程将使用本文的opengl开发库开发工具VS2017glfw源码:源码地址CMake(将源码生成自己想要的IDE工程):下载地址glad:点击打开链接当然了,这些源码文件包括本文的工程代码我都将上次,方便大家学习环境配置首先需要生成glfw 库文件打开C
2017-08-16 10:19:51
16091
1
原创 OpenGL开发学习指南一(freeglut+glew)
今天花了几个小时倒腾了下OpenGL的环境配置,现在整理下,在这里记录下来,方便读者和自己,避免在安装环境配置出现一些不必要的麻烦开发工具:1.VS20172.freeglut大家可以直接在SourceForge上下载源码进行编译出库文件,目前版本是3.0.0,编译教程点击打开链接本文使用的是已经打包好的freeglut的文件,文件下载地址点击打开链接3.glew在这里
2017-08-14 17:38:40
16276
2
原创 实例解析OOP程序设计七大设计原则(二)
接口隔离原则(Interface Segregation Principle,ISP)使用多个专门接口来取代一个统一的接口,一个接口不需要提供太多的行为,一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中。接口隔离原则核心:不应该强迫客户端程序依赖他们 不需要的使用方法接口隔离原则实例:比如一个系统中有一个大的接口,这个接口包含了GameobjectA、Ga
2017-07-25 17:24:45
1508
原创 实例解析OOP程序设计七大设计原则(一)
开闭原则(Open-Closed Principle,OCP)开闭原则是这七大设计原则中最常见、最基本的开闭原则定义:软件实体对扩展是开放的,但对修改是关闭的。意思就是说在不修改软件实体的基础上去扩展其他功能。开闭原则实例:比如实现一个绘制图线的功能设计方案如下图所示用户类中直接调用画直线类,但是如果有一个新需求,要求我们画斜线或者曲线的话,这时就需要修改画直线类中
2017-07-25 11:24:29
4895
原创 Unity3d分页系统
在有些情况下,有很多列表不能一次性显示完整,需要对其进行分页处理我自己也写了一个分页系统,在这里记录下来,方便以后直接拿来使用这篇文章Demo也将上传给大家下载参考:先展示下效果图:·效果图一·效果图二总的来说,要考虑到的逻辑情况还是有点的工程目录结构如下图:在每个UIPage下有一个Image框,用来编辑当前是那一页,默认activa
2017-07-10 16:09:59
4094
1
原创 Unity3d实现扭动挤压浏览效果
最近的项目中,想做到一种能够吸引眼球的一种角色选择浏览效果最后最终实现了下按如下图这么一种浏览效果:·效果图一·效果图二可能要实现这么一种效果用动画插件会很快,但总感觉有点大材小用这里我向大家分享一个极简方式来实现这么一种效果目录结构如下其中Items有4个Image子节点在父节点Items下添加如下图横向布局组件
2017-07-08 23:49:12
4616
原创 Unity3d MVCS游戏框架Robotlegs
最近在一个新项目中需要使用Robotlegs这套框架来重构代码博主学习了下这套开源框架,还是很容易上手的源码下载地址点击打开链接博主学习了这套框架后也写了一个Demo本文内容是围绕这个Demo来写的,大家可以下载参考Demo来学习点击打开链接框架入口using System.Collections;using System.Collections.Generic;usi
2017-07-02 18:01:45
4635
ulua热更新
2017-03-24
opengl环境配置(freeglut+glew+project)
2017-08-15
Qt如何构建phonon框架
2016-05-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人