Unity实战汇总
分享自己的每一个Unity学习或实战Demo过程。
烟雨迷离半世殇
战略转移到个人博客:lfzxb.top
展开
-
Unity实战篇:使用Protobuf实现游戏存读档的完整流程(二:具体项目实战)
读取数据脚本(如果是第一次进入游戏,就初始化数据) public static class PlayerDataReader { /// <summary> /// 数据储存的路径(依据自己情况改变,前面的Application.datapath不能动,在Unity里面就是Assets目录) /// </summ...原创 2019-02-22 20:01:44 · 1810 阅读 · 0 评论 -
Unity实战篇:使用Protobuf实现游戏存读档的完整流程(一:配置环境)
准备工作Google.Protobuf的学习(一:理解基本的使用流程)Google.Protobuf的学习(二:使用protoc.exe生成自己的类)Rider 2018.3.Net Core 2.2.Net Framework 4.7.2Unity 2018.3正文首先我们要明确整体流程首次进入游戏——创建数据储存的载体(.data文件)——玩家创建游戏存档(...原创 2019-02-22 19:32:33 · 3403 阅读 · 0 评论 -
Unity实战篇:Buff系统设计(二:具体代码和实战使用)
首先是Buff种类 public enum BuffKind { FreezeBuff = 1, GodDefendBuff = 2, SteelHeartBuff = 3, }BuffBasepublic abstract class BuffBase { /// <summary...原创 2019-02-21 10:43:44 · 7375 阅读 · 3 评论 -
Unity实战篇:Buff系统设计(一:大体思路和思维导图)
在网上看了不少Buff系统的设计,总是不如我的意,所以索性自己思考着做了一个,欢迎大家提意见。思想:能够被加上Buff的游戏物体,说明他在游戏中的地位已经相当重要,所以我们值得让他继承Mono 相对于集中管理的BuffManager,我倾向于每个游戏物体都是自己Buff的管理者,当自己被加上Buff的时候,自己要做出相应的反应 Buff有两个最基本的共同点 1.持续时间 2.Bu...原创 2019-02-21 10:43:36 · 9603 阅读 · 1 评论 -
ET框架个人笔记汇总
本博客永久停更,更新全在我个人网站,https://www.lfzxb.top欢迎大家加入我的Unity交流群:959572557本篇博客将记录所有的关于ET的笔记和教程。视频教程地址:https://www.bilibili.com/medialist/detail/ml759596845?type=1服务器基础知识学习笔记Google.Protobuf学习专栏 Socke...原创 2019-02-05 19:58:33 · 8427 阅读 · 2 评论 -
Unity作品展示:坦克大战(基于GameFramework)
游戏名称:Battle City游戏素材:SIKI学院,爱给网开发平台:Unity 2018.3.1f1游戏平台:WinX游戏版本:1.0游戏用途:仅供学习交流使用,若用作商业,后果自负。游戏类型:经典坦克大战,微创新游戏介绍:加入商城模块,任务模块,存读档功能,技能背包系统,Buff系统源码下载:https://blog.csdn.net/qq_1502054...原创 2019-02-03 19:41:57 · 5796 阅读 · 0 评论 -
Android/Unity实战篇:查看安卓真机运行时的Debug信息
当我们在开发的时候,我们可以方便的用Debug来调试程序,可是,有些问题恰巧出现在真机测试的时候,网上已经有了很多教程,可总是不完整,故在此写一个完整版,供大家参考。手机设置使用USB连接电脑,打开开发者模式,打开USB调试,允许调试电脑设置找到安卓SDK所在目录,找到tools这个文件夹打开monitor.bat(如果没有的话,参考https://blog.csdn....原创 2018-12-16 09:57:22 · 6947 阅读 · 2 评论 -
Unity实战篇:实现连连看死局判定(二:具体实现)
要做死局判定,我们要明确在什么时候检察地图是否死局。刚刚初始化地图 每次消除之后 检查死局前我们也要同步更新有向邻接表字典和地图数组我们约定,数组值为-1代表此处为空遍历字典,找到要去除的元素,从字典删除 避免异常,删除元素后即退出函数 /// <summary> /// 改变邻接表 /// </summary&...原创 2018-12-11 12:02:17 · 1613 阅读 · 0 评论 -
Unity作品展示:连连看
游戏名称:LinkUp游戏素材:Unity2017经典游戏开发教程算法分析与实现开发平台:Unity 2018.2.13f1游戏平台:WinX游戏版本:1.0游戏用途:仅供学习交流使用,若用作商业,后果自负。游戏类型:经典游戏连连看游戏介绍:连连看,唯一亮点是粗糙的做了一下死局判定源码下载:https://blog.csdn.net/qq_15020543/ar...原创 2018-12-11 12:02:25 · 5582 阅读 · 1 评论 -
Unity实战篇:实现连连看死局判定(一:数据结构的选择以及基本思路概述)
最近在做连连看小游戏,整体完成的差不多,还差一个死局判定,若为死局,即重新洗牌。由于项目结构较为繁杂,建议大家先下载源码源码下载链接:https://gitee.com/NKG/UnityWorks/blob/master/UnityPackages/LinkUp.unitypackage和群里的大神讨论后,决定使用有向邻接表这一数据结构思想来实现这个目的。直接讲实现方法也没用,先...原创 2018-12-11 12:02:12 · 2979 阅读 · 3 评论 -
Unity实战篇:实现场景切换画面和进度条
我们在进行Unity开发时,场景切换是不可避免的。例如MOBA从组队房间到游戏场景,MMO传送,以及吃鸡的从素质广场到荒岛,场景的切换势必要加载大量的数据以及各个模块的初始化工作。那么,如果要加载的场景过大,而用户的硬盘或者其他硬件性能不够强劲,那么画面就会卡住,等待很长一段时间,非常影响用户体验。场景切换中间的过渡就在所难免。比如这个(很赞吧~哈哈哈(旁白:又犯病了))那么我们今...原创 2018-11-20 11:48:03 · 13574 阅读 · 11 评论 -
Unity实战篇:MOBA游戏小地图制作(一:小地图的创建以及人物同步)
在许多游戏里,我看到都有小地图这个模块,对于玩家而言很友好,所以今天研究一下。本人能力有限,利用CustomRenderTexture实现。环境:Unity2018.2.13f1Demo下载:https://download.csdn.net/download/qq_15020543/10765062(如果没有积分就加我好友,我用QQ发你)先简单的说一下基本流程。创建一...原创 2018-11-04 20:04:46 · 11701 阅读 · 5 评论 -
Unity实战篇:MOBA游戏小地图制作(二:细节完善)
1.场景新建一个Cube,命名为Ground,scale设置为200,0.01,200。2.创建材质球,把准备好的地图图片(开一把MOBA游戏~)拖进去,然后把材质球给Ground。我们的地图实体差不多是这样3.新建一个脚本,命名为MapReponse,作为我们点击小地图控制人物移动的脚本。挂载到MapMask身上,并在MapMask下面新建一个Image(图片随意),命名...原创 2018-11-04 22:55:24 · 5502 阅读 · 0 评论 -
Unity实战篇:MOBA游戏小地图制作(三:实现点击小地图控制人物移动)
前言:在开始之前,建议大家先了解一下Unity的原生点击事件以及UGUI的基础知识(旁白:少废话,谢谢)我们知道,Game窗口左下角坐标为(0,0),右上角为自己设置分辨率的值,比如我分辨率是1920*1080,那么我Game窗口的右上角就是(1920,1080)然后我们注意到上篇的UI和实体地图都是正方形(这里可以根据需求自由变化,只需要注意比例即可),那么,我们就可以依据比例来反射...原创 2018-11-04 22:55:03 · 7249 阅读 · 0 评论 -
Unity实战篇:读取Excel数据并转换成Asset
在开发游戏过程中我们不可避免的会遇到要给游戏数据配表的问题,(毕竟一个一个string写太累了啊喂!),而且配表还有利于数据的观察和策略性修改,也有利于游戏的维护与更新。这篇博客讲的是读取Excel表格数据,并且转化为Asset文件。它具有以下优点我们可以不用将Excel文件放到工程里,只需要生成一次Asset文件即可删除 解决了项目打包成EXE文件无法读取Excel表格的问题 解决了...原创 2018-10-17 20:15:01 · 5093 阅读 · 17 评论 -
Unity实战篇:实现LOL英雄的移动方式。
本来是一个很简单的需求,可是当自己做的时候,才知道有多少要注意的地方。(如果出现射线检测和自己输入的频率不一致的情况,请看https://blog.csdn.net/qq_15020543/article/details/83590804)还是先上效果图吧。方案一.Vector3.Lerp的非匀速运动,PASS。using System.Collections;usin...原创 2018-10-22 20:29:26 · 4631 阅读 · 5 评论 -
Unity实战篇:讨论动画过程和计算伤害之间的关系
在开发游戏的时候,我们会遇到这样的需求,当人物的攻击落到敌人身上时,播放特效,声效,产生伤害..........等等一系列要求。那么我们要怎么实现呢。先了解一下怎么添加动画帧事件https://blog.csdn.net/qq_15020543/article/details/834439661.为目标位置添加碰撞体 为什么会想到这一点呢,之前风靡全国的拳皇系列,它...原创 2018-10-27 11:03:50 · 5199 阅读 · 0 评论 -
Unity实战篇:利用Easy Touch实现Moba游戏技能释放 (指向性追踪技能,范围AOE技能)
<2>指向性追踪技能,通过射线检测决定施法目标,这仅仅是一个思路,对于普通攻击,只需要检测人物周身敌人的血量来选择目标即可。<3>范围AOE技能同理,只是把Slider换成普通的圆形image,根据摇杆与摇杆背景距离之比和偏移角度按比例转换到技能辅助显示上(这个比例按自己需求来设置),并且在指定位置释放范围AOE技能。效果图直接ctrl+d一份slider...原创 2018-10-14 15:35:13 · 2753 阅读 · 0 评论 -
Unity实战篇:利用Easy Touch实现Moba游戏技能释放(前言)
前言:王者我已经一两个赛季没玩了,当年老夫可是。。。咳,跑题了,我现在一直在自学Unity,想要实现一下他的技能释放方式,仅为学习交流,如有侵权,请联系我删除。想要实现的效果:准备工作Easy Touch 5.x插件 Unity 5. 6. 1 f 一定的Unity基础 一定的UGUI基础 一定的Easy Touch基础 Unity官方案例篇:Tanks Tuto...原创 2018-10-13 16:56:50 · 3287 阅读 · 2 评论 -
Unity实战篇:利用Easy Touch实现Moba游戏技能释放 (非指向性直线技能)
<1>非指向性技能,直线施法,这种施法涉及技能长度,人物转身,伤害计算三个关键点。根据蓄力时间来显示辅助箭头长度,并且箭头长度和发射力度都有一个最大值。先在人物下面创建slider编写脚本这里我为了方便直接通过public方式取得实例,不推荐大家这样做,而是统一transform.Find和GameObject.Find。public GameObje...原创 2018-10-14 14:33:33 · 1617 阅读 · 1 评论 -
Unity实战篇:实现虚拟摇杆控制人物(Easy Touch 5.X插件)
先上一张效果图 1.先导入Easy Touch 5.X插件https://download.csdn.net/download/qq_15020543/10718144强烈建议大家去Unity 商店支持正版!!!2.创建虚拟摇杆,因为我们的需求很简单,所以不需要创建Easy Touch实例3.虚拟摇杆的配置这个相机跟随用不到,因为项目大部分都需要自己...原创 2018-10-13 15:29:41 · 9909 阅读 · 1 评论 -
Unity作品展示:Space Shooter Tutorial For Android (持续更新中)
游戏名称:Space Shooter Tutorial 游戏素材:Unity官方商店开发平台:Unity 5.6.1f游戏平台:Android 4.4以上游戏版本:1.0游戏用途:仅供学习交流使用,若用作商业,后果自负。游戏类型:2D空战射击游戏游戏介绍:你将控制飞机与敌人进行激烈的战斗。游戏教程专栏:https://blog.csdn.net/column/d...原创 2018-10-09 13:30:31 · 1446 阅读 · 0 评论 -
Unity实战篇:安卓游戏背景循环滚动的实现(分辨率自动适配)
今天我看了很多网上的背景图循环,表面上是可以的,可是分辨率一变,直接凉凉,所以我把这些方法结合一下,加以修改,就能完成背景自适应分辨率循环。在此记录,希望能帮到各位小伙伴。1.首先是相机渲染问题和UI自适应问题大家要先了解一下。方便理解后面的内容。https://blog.csdn.net/qq_15020543/article/details/82594332https://blog...原创 2018-10-01 15:12:05 · 1243 阅读 · 0 评论 -
Android/Unity实战篇:打包代码为jar/aar供Unity调用(完整版)
先说一下原由,本来只是在游戏里添加一个很简单的功能——点击一个按钮,复制文本内容到安卓粘贴板,然后........就没有然后了。环境: jdk1.8.0_171 Android Studio 3.0(奉劝大家没什么需要不要更新,我更新到3.0都后悔了) Unity 5. 6 .1f (这个版本很舒服) 所需类库:U...原创 2018-10-09 09:09:26 · 5454 阅读 · 1 评论 -
Unity实战篇:实现安卓手机的复制粘贴功能(与原生Android交互)
1.安卓方面的准备和代码编写准备:必看https://blog.csdn.net/qq_15020543/article/details/82976850(先不要导出aar或jar包)代码编写:参考自https://blog.csdn.net/mseol/article/details/78518754#commentsedit在自己的Library新建一个类package ...原创 2018-10-09 09:24:36 · 2842 阅读 · 1 评论 -
Unity官方案例篇:Tanks Tutorial全解读(UML图概括以及项目概述)
Tanks Tutorial是官方推出的教程系列的Demo,其中包含了粒子特效,协程,单例模式(严格来说算不上),相机动态移动,蓄力炮弹机制,环形生命条(Slider实现),阴影,UGUI等多种重点基础知识。值得大家学习。这是它的UML图,有位大佬告诉我经常画UML图对学习进步帮助非常大,今日一试,受益匪浅!这是游戏运行时的截图其实我玩了一下,可玩性还可以,就是控制有点别扭,需...原创 2018-09-18 18:41:08 · 1597 阅读 · 1 评论 -
Unity官方案例篇:Tanks Tutorial全解读(Tank移动)
PS:除了需要注意和重点学习的地方,其他过于基础的我不再赘述。(因为注释实在太详细了啊,魂淡!)史诗级注释了解一下?我们先来看Tank的移动控制脚本。遍历得到粒子系统子物体并播放利用玩家的标识来决定操纵者的按键。我们可以按下图顺序来查看Input Setting,并且可以根据自己的需求来更改。然后是坦克位置的改变。通过刚体来插值更新位置。...原创 2018-09-18 18:41:18 · 1547 阅读 · 1 评论 -
Unity官方案例篇:Tanks Tutorial全解读(坦克开火详解)
这次我们来看坦克的开火脚本。首先是辅助瞄准箭头Slider实现。对Slider不熟悉的小伙伴可以去看我写的这篇博客。https://blog.csdn.net/qq_15020543/article/details/82716854还可以把坦克的预制体放到场景里观察他的辅助瞄准箭头具体实现,学习一下。然后是开火,这段代码逻辑我改了一点点,效果实现的还可以。注意这里的...原创 2018-09-18 18:41:33 · 1442 阅读 · 0 评论 -
Unity官方案例篇:Tanks Tutorial全解读(坦克生命值)
这篇没什么好讲的,主要是颜色插值渐变这个API的使用。然后就是血条UI的改变,我们不应当让它随着坦克的转动而转动,这样会干扰我们的判断。我们让它始终与父物体的旋转四元数保持一致。...原创 2018-09-18 18:41:44 · 1018 阅读 · 0 评论 -
Unity官方案例篇:Tanks Tutorial全解读(炮弹爆炸)
射线检测相关整合在这https://blog.csdn.net/qq_15020543/article/details/82531658(里面有laymask和queryTriggerInteraction以及layer的介绍) Physics.OverlapSphere 重叠球C# => public static Collider[] OverlapSphere(...原创 2018-09-18 18:41:51 · 1740 阅读 · 0 评论 -
Unity官方案例篇:Tanks Tutorial全解读(TankManager和GameManager)
对Serializable(序列化)有兴趣的小伙伴可以去看我这篇博客https://blog.csdn.net/qq_15020543/article/details/82761416这里的作用就是单纯的将信息序列化显示在Inspector面板上,方便赋值。转到GameManager脚本一目了然,不需要解释。如果去掉这句Serializable的话,就没得。这个...原创 2018-09-18 18:41:59 · 2962 阅读 · 0 评论 -
Unity官方案例篇:Tanks Tutorial全解读(相机控制)
这个相机控制我个人感觉比较难,所以会啰嗦一点,大虾勿喷。脚本挂在然后FixedUpdate里面有Move和Zoom两个函数,我们先看Move我们看39行的FindAveragePosition函数我们查找m_Targets的所有引用,发现它在GameManager被赋值,分别为坦克1和坦克2的值。averagePos是平均位置也就是两个坦克的中间位置,得出方...原创 2018-09-18 20:19:58 · 837 阅读 · 0 评论 -
Unity官方案例篇:Space Shooter Tutorial全解读(UML图及项目概述)
Space Shooter Tutorial是Unity官方的射击游戏,大家可以在Unity商店自行下载。画质较为精美,我在这里将以它为原型,记录很多知识点,包括但不限于项目的解读,Unity项目的性能优化,Unity项目的跨平台移植(Android)。老规矩,先看一下项目的结构图。然后是游戏截图,画质真的很精美。特别是这粒子特效,简直美爆!但是我在运行过程中发现了问题,就是时...原创 2018-09-29 18:08:39 · 1266 阅读 · 0 评论 -
Unity官方案例篇:Space Shooter Tutorial全解读(场景的循环以及敌人障碍物的生成)
首先是用来控制背景图移动的脚本。其中用到了一个API:Mathf.Repeat这个API一般都用于循环移动。只看定义太抽象了,我们来看看一个Demo。*****************************************************************************************************************...原创 2018-09-29 18:08:47 · 1319 阅读 · 0 评论 -
Unity官方案例篇:Space Shooter Tutorial全解读(玩家的控制以及敌人的AI)
之后是玩家的控制脚本,我这里改了一下,让飞船自动发射子弹。并且给它设置时间间隔。逻辑很简单,一看就懂。飞船的移动和倾斜是通过Rigidbody来实现的。第43行的代码意为将飞机的移动限制在碰撞盒中,并且随着飞船的移动机身会倾斜。然后是我们的重头戏,敌人的AI,在这个案例中,障碍物(陨石)是直来直去的非常容易躲避,但敌人却有着会自主朝玩家方向移动并且发射子弹的AI。这无疑增加了游戏的可玩...原创 2018-09-29 18:08:51 · 1298 阅读 · 0 评论 -
Unity实战篇:移植游戏到安卓平台的注意事项及其实例(一)
这篇博客以Unity官方案例Space Shooter Tutorial为例。较为全面的讲解了游戏移植到安卓所需要的注意事项。1.安卓和Java环境配置https://blog.csdn.net/qq_15020543/article/details/805257432.分辨率设置我们知道,当今手机屏幕的尺寸和分辨率可谓数不胜数,那么我们要如何做好分辨率的适配呢。不用担心,在游...原创 2018-09-29 22:55:43 · 9781 阅读 · 0 评论 -
Unity实战篇:移植游戏到安卓平台的注意事项及其实例(二)(UI的重建)
话不多说,直接进入主题。Space Shooter Tutorial这个案例比较特殊,它是以2D视角呈现的3D游戏。所以我们要么需要另外创建一个相机来单独的对UI进行渲染,要么放弃这个背景,自己重新做,而我选择了后者,而游戏场景本身,不需要我们多虑,只需要修改一下敌人随机生成位置和限制玩家移动范围的算法即可。1.先按照上一篇的方法设置好打包和分辨率配置,删除原本的三个GUIText,并在代...原创 2018-09-30 10:47:03 · 1593 阅读 · 0 评论 -
Unity实战篇:移植游戏到安卓平台的注意事项及其实例(三)(FixBug,生命概念的引入和Audio优化)
由于我们重建项目的时候,并没有采用原项目那样的场景重载,所以生成敌人的那个协程就出了问题,每次再来一次游戏的时候,刚开始那段时间会出现大量的敌人,基本逃不过死亡的结局。所以我们要修改一下。我们在GameController里面创建对外的两个函数(StartIEnumerator和StopIEnumerator)来控制生成敌人的开始与结束。using UnityEngine;using ...原创 2018-10-02 14:27:36 · 793 阅读 · 0 评论 -
Unity实战篇:移植游戏到安卓平台的注意事项及其实例(四)(玩家等级,对象池概念的引入以及优化)
1.对象池基础概念的了解(必看)https://blog.csdn.net/qq_15020543/article/details/829334792.引入玩家等级概念,根据玩家等级来升级子弹,针对项目来进行嵌入对象池对于玩家,我们需要多添加几个子弹发射位置。玩家等级和枚举类型皆由GameController控制using UnityEngine;...原创 2018-10-03 20:25:55 · 638 阅读 · 0 评论 -
Unity实战篇:移植游戏到安卓平台的注意事项及其实例(完)(存档,读档,排行榜的开发(PlayerPrefs))
排行榜的开发利用PlayerPrefs来实现数据持久化,对PlayerPrefs不了解的同学先去看一下我这个博客https://blog.csdn.net/qq_15020543/article/details/82228221先创建好UI先在GameController里面初始化键值。我们只有五个榜位,为什么要创建6个呢,因为我们要保存新的得分和等级,用来和已经保存的相比较,用冒...原创 2018-10-05 15:07:18 · 1777 阅读 · 0 评论