自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (10)
  • 收藏
  • 关注

原创 公用对象池二(Class回收)

Unity Class对象池

2024-07-09 18:21:08 427

原创 公用对象池

Unity 通用对象池

2024-07-04 18:17:15 282

原创 Unity值类型和引用类型

Unity 值类型和引用类型详解

2024-05-11 11:15:37 672

原创 Unity利用ZXing库 生成和识别二维码

创建和识别二维码

2023-12-15 10:43:37 1025

原创 Tcp网络通讯详解三(解决缓存区大小定义过大或过小问题)

那这样就埋下了一个问题炸弹,当我们的单条消息传输大小大于BUFFER_SIZE,这个时候就会引爆这个炸弹,我们读取到这条消息的长度标识,假如说这个标识是2000,发现我们的readBuff中的缓存数据小于2000,这个时候我们默认这条消息不完整,然后等待下次一块处理,但是发现我们的缓存区已经用完了,就永远也无法再接收到余下的信息,造成的结果就是Socket彻底堵塞瘫痪。,这个缓存空间需要我们定义一个大小,上篇文章中我们定义的缓存空间的大小。到这里新改进的客户端的Tcp就实现了。《Tcp网络通讯详解》

2023-06-30 11:55:32 2037

原创 位运算(与、或、异或)

位操作是程序设计中对位数组或二进制数的一元和二元操作。在许多古老的微处理器上,位运算比加减运算略快,通常位运算比乘除法运算要快很多。在现代架构中,位运算的运算速度通常与加法运算相同(仍然快于乘法运算)。计算机中的数据在内存中都是以二进制形式进行存储的,用位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高。

2023-06-06 16:04:47 618

原创 一条线的故事(基于LineRenderer的绘制封装)

Unity画一条线,总共分几步?

2023-05-12 16:30:37 738 1

原创 Unity 编辑器拓展练习项目三 (查看内置Icon工具)

日常做编辑器工具时,为了提高美感,通常需要绘制一些Icon,而Unity内置的Icon能够满足日常的工具开发,为了方便快速查找自己想要的icon,特地做了这个工具。这个工具也是为了完善练习项目二的内置Icon工具。

2023-02-24 10:28:43 695 2

原创 Unity 编辑器拓展练习项目二 (查看内置GUIStyle工具)

今天的练习重点是TreeView的使用,用TreeView的方式做一个工具,设想该工具包含两个功能,查看内置GUIStyle和查看内置Icon,这次只完成了查看内置GUIStyle的功能。

2023-02-21 16:45:30 808

原创 Unity 编辑器拓展练习项目一

Unity编辑器拓展工具美化学习记录

2023-02-20 17:46:29 189

原创 Unity SpriteAtlas(图集)自动生成工具

图集是一种将多个纹理合并为一个组合纹理的资源。可以调用此单个纹理来发出单个绘制调用而不是发出多个绘制调用,能够以较小的性能开销一次性访问压缩的纹理。

2023-02-03 18:44:11 1831

原创 Unity 资源被引用查找(资源清理)工具

Unity 查找资源被引用情况

2023-02-02 14:24:21 1603 1

原创 Unity 单击、双击、长按事件处理

同时集成单击、双击、长按的功能。

2022-11-03 18:46:28 4946

原创 c# A星寻路算法

c# A星寻路算法。

2022-11-02 17:23:39 628

原创 Unity Scene面板拓展

Unity Scene面板拓展

2022-08-23 11:35:38 699

原创 Addressable 预下载

Addressable 热更新预下载(个人学习笔记,仅供参考)

2022-07-01 15:50:11 861

原创 Unity 人物控制系统(有限状态机思想)

在进入正文之前,可以先看一下我上篇博客搭建的有限状态机的基础骨架。传送门在上篇博客结尾处,说了一点点的多状态共存问题,那么借着这篇博客,把人物控制系统以及多状态共存的问题尽量详细的写一下。分析人物应具备的状态【闲置、走、跑、站立、跳、蹲、蹲走、跳走】这么多状态里,我大致分为三类:移动状态【闲置、走、跑】姿态状态【站立、跳、蹲】复合状态【蹲走、跳走】可以看到,人物控制过程中可能会同时出现多个状态(例如,蹲走,跳走),然而,根据有限状态机的定义,一个有限状态机同

2022-04-01 13:46:25 4228

原创 有限状态机

什么是有限状态机?维基百科解释:有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机(英语:finite-state automaton,缩写:FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。一般情况下每个状态的生命周期为 进入状态、状态持续、离开状态,然后再由一个控制器来进行状态注册以及控制各个状态的切换同时只能存在一种状态为什么用有限状态机?在实际开发过程中,我们经常需要处理各种状态的切换,一般情况下我

2022-03-28 13:09:07 3579

原创 Unity题目开发简易框架

正常开发流程中,通常会遇到很多的题目开发,常见的有选择题、填空题、问答题等。当然这些功能的开发很简单,但是,如果没有一套通用的框架来进行管理,而是每一个或每一种题目都写上一套代码,那么后期的迭代和维护都会收到很多的影响,为了解决这个问题,闲暇之余,做了一个简单的题目框架,能够支持和拓展以上说到的所有题型。首先我定义了一个接口IQuestion,后期所有的题目都继承自这个接口,接口内容如下public interface IQuestion{ /// <summary> .

2022-03-17 16:17:24 8229 2

原创 Unity对话流程工具开发

问题:开发引导模块时,总是会碰到人物对话流程,多数情况下,产品把对话流程的文档发给程序,然后程序二次加工成自己可读的文本数据,这样程序和产品在某种意义上来说造成了时间浪费,后期的每次改动,团队的开发时间都会叠加的浪费。期望为了简化开发流程,希望开发一个产品用的可视化工具,产品写完数据保存成的数据文件程序可以无缝读取,然后每次迭代对话流程都用这个工具生成新的文件来替换老文件。工具截图首先我们如果开发这个工具首先需要定义一个数据类型来存储我们所需要的信息,那么先从最小单元开始倒推着定义,我们需要一

2022-03-07 17:47:14 4160

原创 Unity AssetBundle分包

一、Unity AssetBundle分包流程图二、源码AssetBundleGroupGetter对象,负责分组管理using System.Collections.Generic;using System.IO;using System.Linq;using UnityEditor;using UnityEngine;public class AssetBundleGroupGetter{ /// <summary> /// 所有资源的AssetInfo

2022-02-15 17:02:30 2968

原创 Protobuf 在Unity中的使用

Protobuf在Unity中的序列化与反序列化

2022-01-27 18:04:44 8086 1

原创 Unity 自带的Json工具JsonUtility关于多态对象序列化问题

Unity 自带的Json工具JsonUtility关于多态对象序列化问题问题描述:我有一个抽象类A有a和b属性,对象B继承自对象A,且对象B中有其特有的属性c和d对象C继承自对象A,且对象C中有其特有的属性e和f对象D是一个集合对象存储所有A的派生对象当我序列化对象D的时候会发现生成的json中只有a和b属性,派生对象的特有属性无法序列化[Serializable]public abstract class A{ public string a; public int b;

2021-12-17 10:55:22 3567 1

原创 UnityWebRequest请求

以前项目的网络请求一直是在用BestHttp插件来进行处理的,由于插件的某些不可控性以及为了不过分依赖插件,所以在这次项目重构的过程中准备换成Unity自己封装的请求方式进行处理,不得不说现在的UnityWebRequest比老版本的WWW要好用多了,下面会介绍这个请求的管理模式。首先我把每一个请求都抽象成为一个请求对象(RequestNet),包含Get、Post请求,再由一个请求管理类(RequestManager)来管理这些对象,下表我会把请求对象和请求管理类的公共方法给列举出来RequestNe

2021-09-08 19:53:25 437

原创 Unity 计时器管理类

计时器管理类开发原因在项目开发阶段有很多的计时器需求,包括游戏时间计时,验证码时间计时等。如果没有一个计时器管理类,将会非常混乱,为了更好的管理计时器,封装了一个计时器管理类功能代码解释TimerMoudle 管理一个计时器,TimerMoudle对外公开的函数及字段如下:函数解释Play(bool restart=false)运行计时器(restart表示是否重新开始计时,默认为false继续计时)Pause()暂停计时器Stop()停止计时器Cl

2021-08-30 14:14:17 1177 3

原创 Unity UGUI ScrollRect嵌套及事件被拦截问题

文章目录ScrollRect横竖嵌套滑动问题描述解决思路代码ScrollRect滑动事件被其他UI事件拦截问题描述解决思路代码ScrollRect横竖嵌套滑动问题描述常规ScrollRect滑动行为是由用户滑动事件触发的,在嵌套ScrollRect时,滑动事件被二级ScrollRect触发并劫持而不会再向上级ScrollRect传递,这样就会造成只有二级ScrollRect响应事件而顶级ScrollRect无响应解决思路为了解决这一问题我们需要重写ScrollRect对象的OnBeginDr

2021-06-08 15:12:42 1581 3

原创 Unity Build之前弹出提示框

需求项目有两个服务器,一个为线上的正式服务器,另一个为本地的测试服务器(用于发版之前测试使用),为了避免以测试服务器的状态上线,需要在打包时判断是不是测试服务器,如果是测试服务器则弹出提示框,问询是否继续。解决方案[DidReloadScripts]标签可以再代码编译完成时Unity进行自动调用,解决思路为在代码编译完成时注册打包事件,代码如下:using System.Collections;using System.Collections.Generic;using UnityEdi

2021-06-04 17:17:40 898 1

原创 数据结构

文章目录前言链表创建链表通用接口顺序链表单向链表双向链表单向循环链表前言最近在看一些数据结构问题,准备把每种数据结构都学习并记录一遍链表创建链表通用接口因为链表结构与部分功能比较相似,所以抽象出来一个接口如下:interface IList<T> { void Append(T item);//添加元素 void Insert(T item, int id);//插入元素 void Remove(int id);//移除元素

2021-02-07 19:34:33 155

原创 Unity- BestHTTP数据请求及文件下载

Unity 通讯插件(BestHTTP)请求数据及下载文件Unity工程中关于HTTP的使用非常常见,Unity本身集成的WWW便可以进行网络请求处理,但是,WWW本身却有很多的局限性,而BestHttp插件却把HTTP这一块处理的很好,今天学习了一下,并做个简单的笔记,写一个小Demo创建APIRequestTest对象来管理程序执行过程中关于HTTP的数据请求及下载 这个脚本中有请求完成回调,下载进度回调及下载资源完成回调,基本能满足常规使用,代码注释很清晰using System;usi

2021-01-08 19:34:41 4685 6

原创 Unity热更_打AssetBundles包

Unity热更_打AssetBundles包Unity开发离不了热更新,现在市面上有很多的热更方案,XLua、ToLua以及C#热更方案ILRuntime,以腾讯的XLua为例,若要实现热更新,AssetBundles是不可规避的一个环节,这其中包括AssetBundles的生成与加载,本文以生成AssetBundles为主,主要来讲自动化打AssetBundles包,至于AssetBundles包体的加载抽时间会再写一篇博客。手动添加AssetBundle标签方式这是最常见的AssetBund

2020-10-19 19:45:08 360

转载 Unity-RectTransform笔记

RectTransform说到手机开发,UI适配是不得不提的一个重要技术点,毕竟市面上手机的分辨率不是统一的,还好Unity提供了一套强大的接口让开发者来很好的实现自己想要适配的效果,今天仔细学习了一下RectTransform组件,还记得以前Transform和RectTransform总是傻傻分不清楚,特此记录,以供后续参考。注:本篇文档参考简书“巨龙饿了”的Unity——RectTransform详解原文地址Anchorunity中的ui元素是有严格的父子关系的,子物体的位置是根据父物体的

2020-08-22 15:12:55 464

原创 Unity 不同父物体的UI坐标转换

Unity 不同父物体的UI坐标转换众所周知,根据不同的参照物,Unity中有这许多的坐标系,那么在我们进行项目开发过程中,经常会牵扯到坐标系的转换来比较或者改变物体坐标位置,而我们用的最多的坐标系大致也就那么几种,世界坐标系,相对坐标系,屏幕坐标系,视口坐标系,GUI坐标系,下面我会简单介绍一下这几种坐标系,最后会着重讲今天的重点内容,屏幕坐标转UI坐标的操作。最近在项目中碰到的问题,需要让参考UI和目标UI进行等高显示,但是这两种UI不在同一个父物体中,所以相对坐标系的方式首先就已经排除了,世界坐标

2020-08-08 15:48:17 4340

原创 Unity 特殊文件Inspector面板预览

Unity 特殊文件夹Inspector面板预览在Unity中我们创建的C#和txt文件是可以在Inspector面板中进行预览的,不需要打开脚本就能够看到里面的基本信息,这种方式在查找文件时是比较有用的,但是在Unity中并不支持.lua或者其他特殊后缀的文件进行预览,感觉这样挺不方便的特别是对于需要用Lua进行热更新的项目,但是还好,我们可以对特殊文件进行拓展。先看一下没有经过拓展的.lua文件现在我们选中Main.lua文件在Inspector面板是没有任何显示的拓展代码using S

2020-08-02 13:22:34 1175

原创 Unity LineRenderer折线图谱

Unity LineRenderer折线图谱最近公司软件有个新的需求,实时显示玩家唱歌的音浪的折线图,我能获知的是玩家的音浪值,第一时间就想到了用LineRenderer组件来实现这个功能,趁着星期天,自己做个小Demo测试一下可行性。作为直来直去的程序员,直接上代码因为玩家在唱歌时,可能需要停顿,所以需要处理LineRenderer的断线操作,那么一个LineRenderer肯定是不能胜任这种操作了,所以我写了一个LineRenderer控制类LineRendererManager,如下:这个

2020-08-01 16:43:53 882 1

原创 XLua笔记

XLua笔记目录XLua笔记下载框架使用方法C#调用LuaLuaEnv.DoString()执行Lua语句通过框架内置的loader加载Lua源文件C#访问Lua全局变量Lua调用C#在Lua中创建新物体Lua访问C#静态属性和方法xLua是Unity3D下Lua编程解决方案,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。下载框架框架地址下载完的XLua框架导入Unity工程使用方法C#调用LuaLuaEnv.DoString()执行Lua语句us

2020-07-25 21:52:15 138

原创 # C# 运算符重载

C# 运算符重载每一次看菜鸟教程都会收获一些编程小技巧,这次get到的知识点是运算符重载,像最基本的运算符+、-、*、/、%这些运算符统统都可以进行重载,这时候你可能要说了,反正编程语言已经实现过这些基本的操作符了,自己重载还有什么用呢?这个东西用好了可是大大的能提高开发效率哦。下面开始讲一下这个技巧的使用场景。举一个常规的例子:构建Square矩形类public class Square{public float width;public float height;public Squ

2020-07-19 16:38:17 190

原创 lua面向对象

lua面向对象面向对象编程是当下最流行的编程框架,用Unity进行开发时使用的C#就是面向对象编程面向对象的特性封装封装简单理解就是把一个方法或者一个对象的信息,功能,和响应都集中到一个单独的对象中继承父类有的公开方法和属性子类都可以使用,而子类特有的方法或者属性不对父类公开多态同一个操作作用在不同的对象身上有着不同的表现形式,例如山羊和老虎都需要吃饭,把吃饭看成一个方法,山羊吃草而老虎却是吃肉。抽象菜鸟教程解释:抽象(Abstraction)是简化复杂的现实问题的途

2020-07-18 22:00:40 176

原创 lua数据类型

lua数据类型对于Unity开发者来说lua是不得不学的一种编程语言,目前市面上最成熟的热更技术还是lua热更,虽然ILRuntime最近也是强势崛起,但目前为止还是无法撼动lua热更技术的地位,今天就简单来总结一下lua的数据类型和简单的使用方法。八种基本类型nil 这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。boolean 布尔类型嘛只包含false和truenumber 表示双精度类型的实浮点数string 字符串,用双引号或者单引号来表示f

2020-07-14 22:09:55 203

原创 Unity MVC模式简述

Unity MVC模式简述什么是MVCMVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。View(视图) - 视图代表模型包含的数据的可视化。Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。为什么要使用MVC

2020-07-01 18:10:41 1514

原创 Python 网络爬虫第一讲

Python 网络爬虫第一讲爬虫,就是按照一定的规则,自动的从网络中抓取信息的程序或者脚本。其实万维网就像一个巨大的蜘蛛网,我们的爬虫就是上面的一个蜘蛛,不断的去抓取我们需要的信息。所以,很明显,我们在学习爬虫的时候肯定要先学习,Python与互联网的通讯。在Python2版本中,有urllib和urlib2两个库可以用来实现request的发送。而在Python3中,已经不存在urllib2这个库了,统一为urllib。urllib四大模块urllib.request可以用来发送reques

2020-06-27 10:10:02 480

DontSleep(对抗系统休眠)

解决公司电脑强制休眠,只要后台运行此程序,不影响任何操作的情况下,强制对抗系统休眠 使用方法: 1. 解压 2. 运行DontSleep.exe 3. 程序最小化运行即可 4. 如果需要设置开机自启动可以使用window的任务计划程序功能在开机时自动运行程序 注:仅适用于Window系统

2024-05-23

Unity DataPrefs

Unity持久化存储工具 PlayerPrefs的替代工具: 1.支持数据自定义保存 2.支持数据可视化 3.支持自定义拓展

2023-05-31

Unity 人物状态控制

1.虚拟摇杆和键盘两种控制模式 2.有限状态机多状态切换控制 3.PC模式和手机模式的视角转移

2022-04-01

Unity 题目开发简单框架

1.支持 填空题、选择题、拼图题等题目类型 2.可简单的在框架基础上拓展其他题目类型

2022-03-17

Unity DialogToolsDemo对话流程工具

可视化对话流程配置工具 桥接产品与程序对话流程的开发

2022-03-07

Unity 中使用Protobuf进行序列化和反序列化的Demo

Unity 中使用Protobuf进行序列化和反序列化的Demo

2022-01-27

ScrollViewDemo.unitypackage

Unity UGUI ScrollRect嵌套及事件被拦截问题的解决

2021-06-08

Vectrosity 5.6.zip

最新版本 VectorLine 划线插件 Unity 绘制2D曲线还在用LineRender? Unity 还在苦恼绘制的2D曲线古板,单调,不顺滑? 试试这个插件, 支持Unity 2D 3D 曲线绘制, 内置曲线绘制顺滑算法 什么曲线渐变,动效,贴图.... 你能想到的效果,也许只用这个插件就够了

2020-10-17

UIFrame.rar

Unity的UI框架 利用栈先进后出的特点,需要显示的界面进栈,需要关闭的界面出栈,每一个界面设定四种触发事件,分别为:刚进入、暂停操作、重新进入、离开,通过UIManager进行控制各个界面之间的交互

2020-04-26

jdk-8u111-windows-x64.rar

jdk1.8 64位 windows 官方正式版下载。 JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

2020-02-22

LitJson.rar

LitJson是一个开源项目,比较小巧轻便,安装也很简单,在Unity里只需要把LitJson.dll放到Plugins文件夹下,并在代码的最开头添加 “Using LitJson”就可以了。简单来说,LitJson的用途是实现Json和代码数据之间的转换,一般用于从服务器请求数据,得到返回的Json后进行转换从而在代码里可以访问。

2020-01-10

AVPro Video 1.7.4.rar

Avpro Video是一款由RenderHeads出品的可以在Unity上安装使用的万能多平台视频播放插件,Avpro Video支持Windows,linux,ios,mac,Android等多平台万能播放。不仅可以实现基础的播放功能,还能实现进度条拖放和速率调整,播放4K视频,360度全景视频等,并对不同的平台进行了优化。

2020-01-10

空空如也

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

TA关注的人

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