Unity游戏开发
文章平均质量分 81
游戏蛮牛、泰斗社区专栏作家,UE4、Unity3d、Coco2d-x移动游戏开发
博客地址:blog.liujunliang.com.cn
即步
博客地址:blog.liujunliang.com.cn
展开
-
3D数学基础与三维渲染
博客地址:blog.liujunliang.com.cn本文使用C# Winform开发工具运用3D数学基础实现三维渲染主要有三个步骤:顶点的变换、矩阵的变换、模拟光照三维渲染本文源码地址:下载链接顶点的变换首先实现在一个窗口绘制一个三角形,让其各个顶点自动旋转让其自动旋转需要使用到旋转矩阵矩阵公式:矩阵与顶点的变换代码如下// 单个顶点的矩阵转换 public Vertex4 M原创 2018-01-03 21:26:31 · 2582 阅读 · 1 评论 -
OpenGL开发学习指南二(glfw+glad)
在上一篇文章中博主介绍了freeglut+glew的环境配置,本文介绍glfw+glad的环境配置本系列教程将使用本文的opengl开发库开发工具VS2017glfw源码:源码地址CMake(将源码生成自己想要的IDE工程):下载地址glad:点击打开链接当然了,这些源码文件包括本文的工程代码我都将上次,方便大家学习环境配置首先需要生成glfw 库文件打开C原创 2017-08-16 10:19:51 · 15994 阅读 · 3 评论 -
Shader和3D图形渲染管线(Render Pipeline)
博客地址:blog.liujunliang.com.cn最近在系统学习Shader,发现编写之前需要对渲染绘图管线流程有一个系统的认知才能学的更加深刻网上查了一篇教程发现内容并不是很多,本文将自己学习的内容以尽可能的简单易懂的方式记录下来并分享给大家大家也可以关注我的博客,可以和我一起学习Shader编程和Unity3d游戏开发。开始本文的学习!!!定义渲染管线也称渲染流水线,是显示芯片内部处理图原创 2017-12-01 16:25:10 · 3384 阅读 · 0 评论 -
固定渲染管线Shader
固定渲染管线是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合T&L管线可以被渲染状态控制,矩阵,光照及采制参数固定渲染管线一般用于Shader在老显卡无法显示时的Fallback(在Shader的SubShader都无法使用的时候调用)变量小括号写法是固定写法大括号写法是变量写法,可以传一个自定义变量进去Shader "Custom/FixFunc原创 2017-12-03 16:38:17 · 1299 阅读 · 0 评论 -
Unity3d使用UGUI开发原生虚拟摇杆
在Unity3d中开发虚拟摇杆方式有比较多,可以使用EasyTouch、FairyGUI等插件来开发。本文给大家介绍使用Unity3d的原生UGUI来开发出自己的虚拟摇杆,这样可以减少游戏资源包的大小。先展示下效果图:现在开发我们的开发创建一个Image1,并且在Image1创建一个子对象Image2在Image1中挂载一个自定义脚本,这里我命名为Joystick脚本代码如下using Syste...原创 2018-04-17 11:22:44 · 6802 阅读 · 6 评论 -
Unity3d游戏客户端与Photon服务器数据通信
上篇文章介绍到Photon服务器部署本文在上一篇博文的基础上继续介绍使用Unity3d游戏客户端与Photon Server数据通信打开Unity3d2017,新建项目,在Asset目录下新建Plugins文件夹找到Photon SDK目录下的lib文件PhotonUnity3D.dll文件,将其拖动到Unity Plugins目录下新建一个脚本,这里我命名为GamContext,将其挂载到场景空原创 2017-10-20 16:37:17 · 4227 阅读 · 0 评论 -
游戏中的设计模式二(外观模式)
写在前面在游戏中一个场景可能需要与多个系统进行信息交互,比如战斗系统,背包系统,经济系统等在编写代码时候势必要将各个系统之间的通信和依赖降低到尽可能的小这时候适合使用外观模式,将应用程序只能看到外观(facade)对象,不必理会内部的细节对象,从而降低应用程序的复杂度,提高应用程序的可维护性案例分析外观模式整理后这样让外部减少与子系统内多个模块的交互,松散耦原创 2017-08-22 17:11:41 · 1567 阅读 · 0 评论 -
NHibernate与MySQL数据库交互(类和表的映射)
原文地址:blog.liujunliang.com.cn如下图是客户端与服务器间的通信流程上篇文章介绍到了PhotonServer服务器与Unity3d游戏客户端数据通信本文就要介绍使用NHibernate与MySQL数据库交互下篇文章准备编写PhotonServer调用NHibernate在原创 2017-10-22 16:08:21 · 1749 阅读 · 0 评论 -
游戏中的设计模式一(单例模式与状态模式)
这系列文章博主将介绍给大家游戏中常用的设计模式文章并不是纯粹的讲一大堆理论抽象的内容,重点也不再这里。其实设计模式如果大家编写阅读的代码量多的话,自然而然的自己有意思地使用到了。只是没有这么那种系统的意识,所以这系列文章通过一个Unity3d游戏实例让大家感受什么设计模式,设计模式的作用。本文介绍给大家的单例模式以及状态模式写在前面在游戏角色的各个战斗状态(idle,att原创 2017-08-17 16:16:55 · 2851 阅读 · 1 评论 -
游戏中的设计模式三(中介者模式)
写在前面上篇文章讲到外观模式,在外界管理各个子系统时,使用外观模式减少与内部多个子系统模块进行交互,从而降低应用程序的复杂度。本文介绍另外一种设计模式--------中介者模式(又称调停者模式)当我们的多个系统模块之间会有通信,如果系统之间杂乱无章的进行通信数据交互的话,耦合性很高,不容易维护。中介者模式就是解决这种情况,定义一个中介对象来封装系列对象之间的交互。中介者使各个对象不原创 2017-08-28 11:23:23 · 1878 阅读 · 1 评论 -
游戏中的设计模式四(桥接模式)
写在前面在游戏中的角色和武器,往往一个角色可以装换多种武器,武器也拥有诸多类型当角色需要配备不同武器时候,需要修改角色类,使其配备另外的武器对象这样造成对象与对象之间耦合性高,并且不容易扩展使用桥接模式,将抽象与实现分离,使它们都可以独立地变化案例分析在各个帮派角色中,可以使用倚天剑和屠龙刀,当角色需要切换不同武器时候,就要大量的修改角色类来调用另外的武器使用桥接模式,将抽象与实现分离代码编写角色原创 2017-08-30 17:53:41 · 1508 阅读 · 1 评论 -
游戏中的设计模式五(策略模式)
博客地址:blog.liujunliang.com.cn写在前面在游戏中计算各个觉得的攻击值、防御值时,由于各个角色的职业不同,攻击值和防御值计算算法就会不一样通常使用if....else语句来抉择不同类型之间的算法将带来程序复杂和难以维持,当有新的算法或行为时违背开闭原则策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来。委托给不同的对象管理。模式角色环境类:对策略进行二次封装,目的是原创 2017-09-12 17:58:15 · 2199 阅读 · 3 评论 -
Unity3d实现有限状态机系统
原文地址:blog.liujunliang.com.cn在之前有过介绍一个可视化有限状态机编辑器插件PlayerMaker在这里也可以在我们的代码中实现一个状态机本文源码地址:点击打开链接首先创建一个脚本,来管理我们的各个状态using System.Collections;using System.Collections.Generic;using UnityEngine;using Sy原创 2017-10-31 15:33:46 · 5743 阅读 · 2 评论 -
游戏中的设计模式六(模板模式)
博客地址:blog.liujunliang.com.cn写在前面游戏中的各个武器一套攻击动作有固定的步骤,但是每个步骤根据武器对象的不同,而细节的实现不同此时使用模板方法定义一个操作中的方式/算法的骨架,意思就是说在父类里定义一个完成该事情的总步骤每个步骤的具体实现,由子类完成实现,不同子类的实现方式/算法不尽相同模板方法定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不原创 2017-09-13 16:12:36 · 738 阅读 · 0 评论 -
PhotonServer游戏服务器部署及日志输出
游戏服务器端框架----PhotonServer开发工具:Unity3d2017、VS2017、PhotonServer SDK首先到官网下载其SDK,下载地址服务器部署将下载下来的SDK解压目录结构如下deploy:部署程序doc:文档lib:存放类库,在接下来的客户端(Unity3d)和服务器端开发需要引用到src-server:Demo源码接下来开始部署自己的游戏服务器打开VS,新建类库在项原创 2017-10-19 16:22:28 · 3527 阅读 · 0 评论 -
Unity3d通过PhotonServer访问MySQL数据库
接着上一篇文章内容继续开发上一片篇文章介绍到NHibernate与数据库交互原创 2017-10-23 23:10:33 · 2791 阅读 · 2 评论 -
PhotonServer MMO游戏开发
原文地址:blog.liujunliang.com.cn上篇文章介绍的PhotonServer实现在MySQL登录验证请求本文继续上篇文章开发,通过PhotonServer来实现一个MMO Demo游戏(持续发送数据包)以下是我对网络游戏开发编程的总结:一、将需要在各个客户端一起显示的数据都发送到服务器端上(主角的移动、动作、技能特效等)二、在PhotonServer中,一个客户端对应一个Clie原创 2017-10-28 11:57:56 · 2877 阅读 · 3 评论 -
Unity3d实现扭动挤压浏览效果
最近的项目中,想做到一种能够吸引眼球的一种角色选择浏览效果最后最终实现了下按如下图这么一种浏览效果:·效果图一·效果图二可能要实现这么一种效果用动画插件会很快,但总感觉有点大材小用这里我向大家分享一个极简方式来实现这么一种效果目录结构如下其中Items有4个Image子节点在父节点Items下添加如下图横向布局组件原创 2017-07-08 23:49:12 · 4457 阅读 · 2 评论 -
Unity3d MVCS游戏框架Robotlegs
最近在一个新项目中需要使用Robotlegs这套框架来重构代码博主学习了下这套开源框架,还是很容易上手的源码下载地址点击打开链接博主学习了这套框架后也写了一个Demo本文内容是围绕这个Demo来写的,大家可以下载参考Demo来学习点击打开链接框架入口using System.Collections;using System.Collections.Generic;usi原创 2017-07-02 18:01:45 · 4558 阅读 · 1 评论 -
浅谈腾讯热更新开源框架xLua自定义Loader
前几个月腾讯开源了一套热更新、热补丁解决方案,托管在Github,点击进入由于最近有点时间,准备抽出时间学习下,研究了下官方文档,感觉受益颇深之后准备录制一套视频教程来讲解xLua,录制完成后会将链接分享在这篇博文里本文我来介绍xLua的自定义Loader先介绍两种Lua文件加载方法一.执行字符串方法LuaEnv luaenv = new LuaEnv();原创 2017-05-01 16:59:26 · 6173 阅读 · 0 评论 -
Unity异步加载场景与加载进度条
异步加载场景分为A、B、C三个场景A场景是开始场景;B场景是加载场景(进度条加载显示);C场景是目标场景在A场景中添加一个按钮,触发函数://异步加载新场景public void LoadNewScene(){ //保存需要加载的目标场景 Globe.nextSceneName = "Scene"; SceneManager.LoadScene("Loading");原创 2017-05-20 17:40:46 · 26717 阅读 · 6 评论 -
全面解析Unity动画系统
动画融合首先需要将角色的动画类型设置为Humanoid(确保下文的Avatar Mask相匹配)在打开Animator窗口后,为角色添加一个默认动画,在这里给的是一个跑动动画运行游戏,此时仅仅是个跑动动画在这里的需求是,下半身依旧保持跑动状态,上半身处于攻击状态,这里就使用到了动画的融合(当然可以要求美术来完成,但是使用动画融合可以帮助我们来解决这一需求)原创 2017-05-21 16:28:59 · 18012 阅读 · 0 评论 -
Shader实现漫反射、高光反射、纹理映射
使用Unity有一段时间了,越来越发现shader的重要性,之前也有一篇文章提了编写shader基本语法最近重操旧业,准备继续深入学习shader漫反射效果漫反射几何计算公式:Diffuse = 直射光颜色 * max(0,cos夹角(光和法线的夹角) ) Tip:cosθ = 光方向· 法线方向代码如下:Shader "LJL/02_DiffuseVer原创 2017-05-25 13:35:04 · 4982 阅读 · 0 评论 -
Shader实现法线映射、透明效果
法线映射实现原理:按纹理映射方式先获取纹理坐标上的像素颜色值,由于颜色值范围在[0,1],法线值为[-1,1],可以使用UnpackNormal函数获取法线值这里需要注意的是获取的法线值是在切线空间下的值,在使用漫反射公式时,直射光也需要统一转化为在切线坐标下代码如下:Shader "LJL/06-Normal" { Properties { _Co原创 2017-05-26 13:35:08 · 1317 阅读 · 0 评论 -
Shader实现头像遮罩效果
在Unity中有个Mask遮罩逐渐,使用这个组件也可以实现遮罩效果但是我在使用Unity自带的圆形图片时候效果如下:可能是由于遮罩图片的像素问题导致的,大家可以尝试更换一张像素大点的遮罩图片,在这里我就不试验了本文博主在给大家介绍的的编写Shader达到这么一种效果实现原理:计算将圆形以外的顶点的Aphla透明图改为0代码如下:Shader "L原创 2017-05-26 19:32:17 · 3931 阅读 · 6 评论 -
Unity3d分页系统
在有些情况下,有很多列表不能一次性显示完整,需要对其进行分页处理我自己也写了一个分页系统,在这里记录下来,方便以后直接拿来使用这篇文章Demo也将上传给大家下载参考:先展示下效果图:·效果图一·效果图二总的来说,要考虑到的逻辑情况还是有点的工程目录结构如下图:在每个UIPage下有一个Image框,用来编辑当前是那一页,默认activa原创 2017-07-10 16:09:59 · 3992 阅读 · 3 评论 -
Unity制作《水果忍者》刀光特效
最近在甬道Unity中的LineRenderer组件的时候,突发奇想,想到怎么实现水果忍者的刀光特效制作起来并没有想象的那么难,只是想让其逼真起来的话需要一张好的材质贴,博主找了一张不是很完美的贴图,实现了下效果图如下该Demo源码我将上传,提供大家下载接下来先介绍使用LineRenderer来绘图在Hierachy面板上创建3D->Panel,调整摄像机位置,原创 2017-04-29 15:47:16 · 8947 阅读 · 5 评论 -
Unity实现卷纸浏览效果
首先附上效果图:在网上看到了一个卷纸效果,感觉很有趣,自己实现了一下,这个Demo源码我也将上传先设计每个Image对象的的特定属性及函数创建一个脚本,将其挂载到每个Image对象上using System.Collections;using System.Collections.Generic;using UnityEngine;public clas原创 2017-05-11 19:24:16 · 6910 阅读 · 5 评论 -
Unity Avatar换装原理实例
本文向大家介绍Unity换装原理及其简单实现首先附上效果图:本文的源码我将上传提供大家下载实现原理:控制角色SkinMeshRenderer组件的mesh、materials、bones属性来实现角色换装在该Demo素材中,主角是由多个网格拼接完成其中网格对象上添加了SkinMeshRenderer组件,并指定了material、mesh、root bone我们原创 2017-05-13 17:53:52 · 11331 阅读 · 1 评论 -
Unity5.x制作RPG游戏
先展示下运行效果图:这里主要介绍主角的控制,敌人的AI逻辑,相机的跟随可以参考游戏源码来分析一.主角的控制添加寻路组件,以及Animation动画组件CustomEvent.csusing UnityEngine;using System.Collections;public class customEvent : MonoBehaviour { //原创 2016-11-27 17:29:41 · 4910 阅读 · 2 评论 -
Unity与Android通信
一.开启Android的一个工程,点击File下新建如下图所示New Module二.选择Android Library三.为Library命名,在这里我命名为BmobPay四.选中如下图的两个.xml文件,右键选择点击delete,删除五.安装unity,在unity的安装目录下,找到以下图文件路径,复制classes.jar文件六.将上个原创 2016-11-29 12:53:18 · 3037 阅读 · 0 评论 -
Android Studio调用Bmob SDK实现支付
在之前的一篇文章中介绍了Unity与Android Studio相互通信在这里介绍使用Android Studio调用Bmob SDK,接而实现Unity与Android通信达到游戏支付功能原创 2016-12-01 13:27:06 · 3735 阅读 · 0 评论 -
Unet 网络组件的使用
Unity自带的 Unet 网络组件帮助我们快速开发网络游戏这里我简单利用Unet 组件搭建了一个Unity官网介绍的小游戏游戏截图:相当于一款简单的TPS游戏,在这里游戏模型很简单,只由几个常见几何体构建完成一.主角的联机同步创建一个空对象,命名为Network Manager,在其添加Network Manager和Network Manager HUD原创 2016-12-03 16:19:25 · 3968 阅读 · 1 评论 -
Unity创建角色血条
本文使用UGUI实现一个类似于英雄联盟样游戏的的角色血条一.创建一个 Slider UI,将Whole Number勾选上二.删除里面的Handle三.选择Fill,删除其挂载的Image组件,挂载一个自定义名为OutputTexture的C#脚本组件四.代码如下:using UnityEngine;using UnityEngine.UI;原创 2016-12-06 22:32:09 · 3826 阅读 · 0 评论 -
Behavior Designer行为树的使用
一款优秀游戏的人工智能AI至关重要,行为树插件帮助我们在AI逻辑处理更加方便、简洁、清晰行为树是分为四种节点:Composites 组合节点(Sequence相当于and“”、Selector相当于“or”)Decorators 装饰节点(作为额外附加的节点,如时间间隔控制、频率控制、结果取反、错误处理、次数控制等)Actions 行为节点(相对应动作的原创 2016-12-08 12:43:03 · 2702 阅读 · 0 评论 -
Behavior Designer行为树之开发案例
上篇文章介绍了行为树的基本使用方法点击打开链接在这里介绍一个使用行为树开发的小案例案例介绍:在场景中存在一个来回巡逻的敌人,主角从起点走到终点的过程中倘若在视野内发现了敌人就跟随敌人行走游戏场景如下图需要烘焙下平面,因为敌人与主角是通过烘焙导航的平面来寻路的,并且在敌人与主角添加寻路组件敌人的行为树如下图敌人AI简单,在这里只设置一个巡逻节点原创 2016-12-08 20:15:20 · 5323 阅读 · 6 评论 -
手动写一个Behavior Designer任务节点
在Behavior Designer的可视化节点实际都是由脚本语言编写出来的自己手写一个类似于CanSeeObject、Seek等任务节点并不是一件难事下面我介绍CanSeeObject和Seek任务节点的代码生成,基本成功实现了原来节点的功能LJLCanSeeObject代码如下:using UnityEngine;using System.Collections;u原创 2016-12-09 16:17:04 · 1800 阅读 · 0 评论 -
PlayMaker之开发案例
上一篇文章点击打开链接我简单介绍了PlayMaker的使用,并且也介绍了一个小的案例来初步介绍PlayMaker的使用方法在本文我继续介绍使用PlayMaker来制作一些我们在游戏中常的游戏动画因为上一篇文章我在有些细节介绍的很清楚了,在这里有些细节可能我会去忽略案例一:开箱子案例案例介绍:点击按钮对箱子进行开启和关闭的来回播放(介绍在PlayMaker中动画的实现)将原创 2016-12-10 11:29:53 · 4060 阅读 · 0 评论 -
Unity实现刀光特效
我在一篇文章中看到介绍关于刀光特效,博主写的很详细我自己跟着做了一遍,这里我用最简单快速的方式来写下我的心得体会吧首先先在我的资源里下载特效素材点击打开链接我们要实现游戏主角在挥舞武器时武器有刀光的特效因为是有武器产生特效的,所以需要在武器创建一个子节点,当武器位置方位发生变化时,子节点也会相对应地发生改变在这里我创建的武器空子节点自定义命名为trail原创 2016-12-14 18:12:53 · 14996 阅读 · 0 评论 -
网络游戏开发(一)
第一人称局域网游戏原创 2016-12-19 22:30:15 · 1252 阅读 · 0 评论