自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 unity常用的三种摇杆:固定摇杆,拖拽摇杆,移动摇杆(基于Unity程序基础模块)

using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;public enum E_JoyStickType{ Normal, ChangePos, Move}public class JoystickPanel : BasePanel{ public E_JoyStickType type; public float maxLength=180; private

2021-09-15 13:59:35 596

原创 UI面板管理器

统一管理UI面板的显示与隐藏。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;using UnityEngine.EventSystems;/// <summary>/// UI层级/// </summary>public enum E_UI_Layer{ Bot, Mid, Top,

2021-09-15 13:30:40 257

原创 UI面板基类(基于UGUI)

根据UI组件挂载的游戏物体名称来获取组件,将得到的所有组件根据名称存放到字典中。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;/// <summary>/// 面板基类 /// 帮助我门通过代码快速的找到所有的子控件/// 方便我们在子类中处理逻辑 /// 节约找控件

2021-09-15 13:27:59 199

原创 场景加载模块

using System.Collections;using UnityEngine;using UnityEngine.Events;using UnityEngine.SceneManagement;/// <summary>/// 场景切换模块/// 知识点/// 1.场景异步加载/// 2.协程/// 3.委托/// </summary>public class ScenesManager : BaseManager<ScenesManager&

2021-09-15 13:22:57 90

原创 音效管理模块

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;public class MusicManager : BaseManager<MusicManager>{ //唯一的背景音乐组件 private AudioSource bkMusic = null; //音乐大小 private float bkV

2021-09-15 13:21:11 111

原创 公共输入模块(Input类)

using UnityEngine;/// <summary>/// 1.Input类/// 2.事件中心模块/// 3.公共Mono模块的使用/// </summary>public class InputManager : BaseManager<InputManager>{ private bool isStart = false; /// <summary> /// 构造函数中 添加Updata监听 /

2021-09-15 13:14:29 116

原创 Resources资源加载模块(提供异步和同步两种方式)

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;/// <summary>/// 资源加载模块/// 1.异步加载/// 2.委托和 lambda表达式/// 3.协程/// 4.泛型/// </summary>public class ResManager : BaseManager<ResManag

2021-09-15 13:09:33 504

原创 公共Mono模块(让没有继承MonoBehaviour的类也可以update更新,统一管理Update)

让没有继承MonoBehaviour的类也可以update更新,同一管理Update。MonoController帧更新类:用于实现唯一帧更新using UnityEngine;using UnityEngine.Events;public class MonoController : MonoBehaviour{ //Mono控制类 private event UnityAction updateEvent; void Start() {

2021-09-12 21:28:12 633

原创 游戏事件中心模块(基于观察者模式)

using System.Collections.Generic;using UnityEngine.Events;//1.字典//2.委托//3.观察者模式public class EventCenter : BaseManager<EventCenter>{ //事件集合 private Dictionary<string,UnityAction<object>> eventDIc=new Dictionary<string, Uni

2021-09-12 20:25:23 171

原创 游戏对象缓存池(基于unity)

如果频繁创建对象,再销毁对象,会造成垃圾(失去引用的对象)过多,进而让GC的次数变多。因此设计了一个简单的缓存池,将本应该销毁的对象放入其中,下次使用时,直接冲缓存池取出,便可使用。此过程是用内存来换性能。因为多次GC后这些因为对象长时间存在,最终会被转移到2代内存中去。using System.Collections;using System.Collections.Generic;using UnityEngine;public class PoolData{ //抽屉中所有元素的父对

2021-09-12 19:33:31 280

原创 lua文件迁移小工具(编辑器下直接使用,将.lua文件变成定制的AB包文件)

作用:将工程的某个文件夹下的所有.lua文件转换成txt文件,并将这些txt文件放到自定义文件夹下,并且统一修改为自定义的ab包名。AB包不支持.lua文件,所以需要转成txt文件。using System.IO;using System.Collections.Generic;using UnityEngine;using UnityEditor;//编辑器开发需要继承的类Editorpublic class LuaCopyEditor : Editor{ //放在编辑器头顶菜单的

2021-09-05 11:50:17 660

原创 unity 安卓端输出日志神器--Reporter插件

使用教程:1.下载插件 地址:添加链接描述2.导入插件将下载的压缩包解压,只需要将子目录的Reporter文件夹拖拽到工程的Assets文件夹下。3.点击MenuItem(头顶菜单栏)的Reporter->Create按钮,点击后就可以再Hierarchy下看到名为Reporter的空游戏物体。4.点击运行,PC端用鼠标再Game窗口画个圆圈,Android端用手指再屏幕上画个圆圈,就能弹出日志输出窗口。PC端:Android端:点击头顶的黄色按钮可查看运行平台,以及un

2021-09-05 11:06:15 1185

原创 Lua实现三目运算符

x=1y=2local res = (x>y) and x or y--在lua中 支持"短路" 并且只有niu和false才会认为是假--如果x>y 为真 则直接返回x 不用判断or y--如果x>y 为假 则直接返回y 不用判断and xprint(res)

2021-08-30 21:53:27 172

原创 Lua实现面向对象

--面向对象实现 --万物之父 所有对象的基类 Object--封装Object = {}--实例化方法function Object:new() local obj = {} --给空对象设置元表 以及 __index self.__index = self setmetatable(obj, self) return objend--继承function Object:subClass(className) --根据名字生成一张表 就是一个类 _G[className] =

2021-08-30 21:43:50 46

原创 自定义Json数据管理类--支持JsonUtility和LitJson两种架包(提供泛型API,快速序列化或者反序列化自定义类型)

文件默认路径为:StreamingAssets文件夹以及persistentDataPath文件夹两者的路径都可以通过API来获取StreamingAssets文件夹(需要自己创建):Application.persistentDataPathPersistentDataPath文件夹(不需要自己创建):Application.persistentDataPath如果使用LitJson进行序列化与反序列化则需要先导入LitJson架构包(默认使用 LitJson)using LitJson;us

2021-08-30 21:40:57 253

原创 unity3d中的单例模式3--继承MonoBehaviour 并且过场景不删除

using UnityEngine;//C#中 泛型知识点//继承这种自动创建的 单例模式基类 不需要我们手动去拖 或者 api去加了//想用他 直接 GetInstance就行了public class SingletonAutoMono<T> : MonoBehaviour where T : MonoBehaviour{ private static T instance; public static T GetInstance() {

2021-08-24 22:20:40 430

原创 unity3d中的单例模式2--继承MonoBehaviour

using UnityEngine;//C#中 泛型知识点//设计模式 单例模式的知识点//继承了 MonoBehaviour 的 单例模式对象 需要我们自己保证它的位移性public class SingletonMono<T> : MonoBehaviour where T: MonoBehaviour{ private static T instance; public static T GetInstance() { //继承了Mon

2021-08-24 22:18:49 280

原创 unity3d中的单例模式1--不继承MonoBehaviour

//1.C#中 泛型的知识//2.设计模式中 单例模式的知识public class BaseManager<T> where T:new(){ private static T instance; public static T GetInstance() { if (instance == null) instance = new T(); return instance; }}...

2021-08-24 22:16:10 302

原创 AB包资源加载管理器--异步加载(提供三种API)

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;public class ABManagerAsync:MonoBehaviour{ //单例模式 private static ABManagerAsync instance; public static ABManagerAsync Instance => ins

2021-08-23 19:58:06 229

原创 AB包资源加载管理器--同步加载(提供三种API)

using System.Collections.Generic;using UnityEngine;public class ABManager{ //单例模式 private static ABManager instance = new ABManager(); public static ABManager Instance => instance; private ABManager() { } //根据名称存

2021-08-23 19:56:41 204

原创 自定义XML数据管理类:提供xml公共的序列化和反序列化方法给外部,方便外部存储和获取数据

XmlDataManager类:提供xml公共的序列化和反序列化方法给外部,方便外部存储和获取数据。SaveData方法:存储数据(对象,文件名)ReadData方法:读取数据(类型,文件名)切记:XmlSerializer类不支持对Dictionary的序列化与反序列化,如果类的成员中有字典,则需要自己实现可序列化的字典(我的上一篇文章已经实现,可以直接使用:添加链接描述using System;using System.IO;using System.Xml.Serialization;u

2021-08-13 12:50:05 151

原创 让Dicionary<TKey,TValue>实现xml序列化与反序列化--继承IXmlSerializerable接口

使用XmlSerializer类来对自定义类进行序列化与反序列化存在一个问题,这个问题就是它不能序列化与反序列化,类型为Dicionary<TKey,TValue>的成员。我设计了一个类叫做SerializerDictionay<TKey, TValue>,这个类即实现了Dictionay的所有功能,也能让其可以进行XML序列化与反序列化。**核心思想:继承IXmlSerializerable接口,继承Dictionay<TKey, TValue>类**using

2021-08-13 11:55:24 144

原创 自己实现unity的协程调度器--利用c#迭代器和unity生命周期函数

通过unity协程调度器来开启协程,yield return后面逻辑的执行时机如下yield return不同内容的含义1.下一帧执行yield return 数字;yield return null;//在update和LateUpdate之间执行2.等待指定秒过后执行Yield return new WaitforSecends(秒)://在update和LateUpdate之间执行3.等待下一个固定物理帧更新时执行Yeild return WaitForFixedUpdate();

2021-08-12 19:14:25 245

原创 Unity数据持久化之PlayerPrefs高级封装--实现:自定义类型、List<T>、Dictionary<Key,Value>、int、float、string、bool的封装,并对数据进行加密

PlayerPrefs只能存储三种简单类型的数据,数据非常不安全,并且可以通过资源管理文件进行修改。修改路径如下:WindowsHKCU\Software[公司名称][产品名称] 向下的注册表中其中公司名称和产品名称是 在”Project Setting”中设置的名称。硬盘查找步骤:运行 regeditHKCU_CURRENT_USERSOFTWAREUnityUnityEidtor公司名称产品名称Android/data/data/包名/shared_prefs/pkg-nam

2021-08-11 18:39:11 920

空空如也

空空如也

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

TA关注的人

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