自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 C# 命令模式

今天讲一讲设计模式当中的命令模式。命令模式,其实就是将命令封装成一个对象。举个例子,现在有一个物体处于原点,我要让他移动到坐标为(1,1,1)的位置。那么我将她写成一条命令。代码如下:public class MoveToPos{ public void Excute(Transform transform) { transform.position = new Vector3(1, 1, 1); }}然后我们在场景中创建一个物体,将其坐标设置为原点

2021-05-23 18:59:18 235 2

原创 C# Interface(接口)

今天讲一讲C#当中的Interface,中文叫接口,但是我并不喜欢称之为接口,我更喜欢叫Interface。因为称呼为接口很容易导致歧义,比如我们的一个函数,我们可以称之为函数,方法,api或者接口。很多人习惯将方法称之为接口,本质上也没毛病。之前看过很多文章,听到过最多的解释接口的作用的就是,接口是一种规范,其实这并没错,很多说法其实也都没错,只是说初学者能不能理解罢了。其实在初学的时候,我建议大家在写代码之前先做需求分析,然后画类图,最后再去书写代码,因为其实本质上,我们做的就只是翻译工作,将我们的

2021-05-17 22:56:53 307 4

原创 不一样的泛型单例

很多人去实现单例的时候,通常会去写一个泛型的单例基类,public class SingletonBase<T> where T : new(){ static T instance; public static T Instance { get { if (instance == null) instance = new T(); return insta

2021-04-29 15:45:49 236 2

原创 Unity 设计模式(1)

本篇开始将会开始讲讲设计模式方面的知识。1.工厂模式。工厂嘛,顾名思义,就是加工的地方。所以他的作用就是用来从中获取一个加工过的对象。也许很多人会觉得,这个是可有可无的东西,因为我们可以直接获取一个对象在对他进行相关的赋值,其实外面操作好像也没多大区别。但其实并不是。举个例子,如果是一个角色或者物品,那么他们肯定会具有一个属性onlyId,也就是这个对象的唯一标识,他就好比是我们人的身份证。那么这个onlyId呢,他是不可以被外界直接修改的,我们去办身份证,办完后可能没法直接改我们的身份证号吧?只有我们

2021-03-21 22:13:22 163 1

原创 Unity ToLua热更框架使用教程(1)

从本篇开始将为大家讲解ToLua在unity当中的使用教程。Tolua的框架叫LuaFramework,首先附上下载链接:https://github.com/jarjin/LuaFramework_UGUI_V2这个地址的是UGUI的。下载完之后导入项目,首先,我们要先让这个项目跑起来。首先点击Lua->Clear wrap files,清除所有wrap文件。然后点击LuaFramework->Build Windows Resource,打包ab资源。最后点击Lua-&g

2021-03-16 23:12:08 1026 3

原创 Unity MVC实现背包系统(2)

在上一篇中,我们写了背包系统的伪代码,也说了mvc的设计思路,那么这一篇的任务就是将伪代码补全。首先制作一个背包面板,我这里比较简单,就是一个滚动视图,还有一个提示文本,外加两个按钮,一个是使用物品,一个是增加物品,然后给滚动视图的Content添加上布局组件,这样当我们动态添加物品预制体的时候就会自动布局了。这里我们将背包的mvc三层脚本都挂载在背包面板的根节点上,方便互相获取调用,因为我们本篇是针对背包的实现进行的,至于mvc这三层脚本如何获取调用,实际上是由UI框架去决定的,包括代码的周期等等,

2021-03-07 17:51:19 1759 6

原创 Unity MVC实现背包系统(1)

本章节带领大家使用mvc来实现一个背包系统。那么先给大家科普一下mvc这个概念,m指的是Model(模型数据层),v指的是View(视图层),c指的是controller(逻辑层)。将一个功能分解成三部分,m层负责数据处理,v层则负责显示,而c负责功能逻辑。先给大家看一下背包系统的伪代码。public class BagData : MonoBehaviour{ BagCtrl ctrl; Dictionary<ulong, Item> items; //存储背包中所

2021-03-07 17:34:00 739 3

原创 Lua 语法实用技巧讲解

今天来讲一讲在日常开发lua中使用到的一些使用技巧。本章会用c#来和lua对照着来讲。首先第一个是C#的switch。在lua当中并没有switch,但是在lua当中我们可以使用table来实现。比如说C#代码是这样的:switch (n) { case 1: //do something break; case 2: //do something break;

2021-03-05 21:25:15 266

原创 Unity 协程详解

这篇文章来讲讲Unity当中的协程。在讲解协程之前,我们需要对上一篇文章(迭代器)进行一些补充。如果没看过上一篇的要先去看一下哦。上一篇,我们已经讲解了如何去实现一个C#自带的迭代器。就是继承IEnumerable类,实现他的GetEnumerator,返回一个IEnumerator类型的迭代器,IEnumerator类中实现Current,MoveNext,Reset三个属性,即可完成一个迭代器。那么现在要实现一个迭代器已经不需要这么麻烦了。class MyIter : IEnumerable{

2021-02-25 00:16:06 419 1

原创 Unity MonoBehaviour中的帧更新函数详解

本篇文章将详细讲解MonoBehaviour中的帧更新函数。相信只要是在Unity中写过代码的人都知道Monobehaviour这个类。当你的脚本去继承这个Monobehaviour类并挂在在场景中的游戏物体上,那么当游戏运行时,则会执行这个类的一系列生命周期函数。当游戏运行时,系统会自动的去收集场景中所有挂载在游戏物体上的脚本(也就是继承了Monobehaviour)。然后去调用他此时应该调用的生命周期函数,比如说,当游戏刚运行,系统会自动的去收集场景中所有Monobehaviour中的Awake函数

2021-02-24 22:03:10 640

原创 Unity C# IEnumerator迭代器详解

这篇开始我们会对C#中的迭代器进行详细的讲解。首先对于C#中用到迭代器的地方都是在数据结构中将迭代逻辑封装起来。使我们可以在不需要关心数据结构的内部数据存储结构的情况下顺利的遍历到每一个数据。List<int> nums = new List<int>();for(int i = 0;i< nums.Count; i++){ Debug.Log(nums[i]);}看到上述代码,我们使用for循环,对索引进行递增操作,然后根据索引去获取数组中的每一个元素。

2021-02-23 00:50:39 1238 3

原创 Unity 制作UGUI绑定控件编辑器扩展

在以往的开发中,尤其是一些初学者在书写UI脚本的时候,比如说脚本中需要获取游戏场景中的UI控件,大家都会习惯性的在脚本中定义一个公开变量(也就是public),然后将脚本挂载在物体上,那么就可以直接将控件拖到变量上了。其实像这种拖拽的做法,很多公司商业开发中也是使用拖拽,也不能说拖拽就不好,只是这种自带的拖拽,他需要你的脚本继承monobehaivour才能挂载在物体上,那么很多公司的UI部分都会使用lua脚本进行开发,那么就无法使用这种自带的拖拽方式了,但是一般公司都会自己封装一套拖拽扩展的。那么我个人

2021-02-17 21:09:34 650

原创 Unity IFramework 框架学习笔记 2021 (四): ActionNode(节点模块)

ActionNode(节点模块)附上IFramework 下载地址:IFramewrokIFramework QQ交流群:782290296节点模块,该模块提供一些节点,比如说顺序节点,循环节点等等,等我们指定的函数可以去周期性的执行或者是按顺序执行,反正就是按照一定的逻辑去执行。这就是节点模块。该模块的核心类其实就一个,就是ActionNode。但是我们不先讲这个,还是从使用入手,该模块向外提供的api在ActionNodeExtension类当中,这是一个静态类,里面封装了一系列的静态扩展函数,

2021-01-21 00:27:41 489 3

原创 Unity IFramework 框架学习笔记 2021 (三): CoroutineModule(协程模块)

CoroutineModule(协程模块)附上IFramework 下载地址:IFramewrokIFramework QQ交流群:782290296上面所示的链接是IFramework的,这个框架是unity的,但是这个框架依赖于一个cs库。也就是说有很大一部分源码是需要另外下载的。而协程模块就是在cs库当中的。附上CS_IFramework 下载地址:CS_IFramework该协程模块并不是unity自带的协程,而是作者自己封装的一个协程模块,当然原理和unity的差不多,也是使用迭代器来实

2021-01-15 23:50:42 1120 2

原创 Unity IFramework 框架学习笔记 2021 (二): Tween(动画模块)

Tween(动画模块)附上IFramework 下载地址:IFramewrokIFramework QQ交流群:782290296顾名思义,该模块是对动画的封装,最核心的类是:1.Tween (动画类)2.TweenValue (动画数据类)最重要的就是这两个类了,但是为了方便理解,我们从动画提供给我们的使用的api入手,首先有一个静态扩展类TweenEx这个类提供了一些动画接口,DoMove(移动坐标),DoMoveX(移动x坐标)等等,用过dotween的小伙伴肯定很了解,没用过的看着ap

2021-01-11 00:26:24 1326 3

原创 Unity IFramework 框架学习笔记 2021 (一): LanguageModule(语言模块)

LanguageModule(语言模块)该模块主要封装的是各国语言之间的切换,最核心的类是:1.LanguageModule 语言模块类2.DelegateLanguageObserver 语言观察者类3.LuaPair 语言字段类首先看到LuaPair类我已经写上注释了,其实每一个LuaPair对象,就是封装了一段文字,并记录这段文字所属的语言和唯一标识,之后切换语言也是以该唯一标识进行切换的。在看到DelegateLanguageObserver (语言观察者类)其实很好理解

2021-01-03 23:56:45 1615 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除