随笔分类 - Unity-技术小白的进阶之路
摘要:XLua只是提供Lua在Unity上运行,并没有提供热更行解决方案。 Lua文件加载 加载字符串 直接使用luaEnv.DoString()执行一个字符串,字符串必须符合Lua语法 但加载字符串这个方法不常用。 加载Lua文件 用Lua的require函数。 如DoString("require '
阅读全文
摘要:这里使用IDEA的版本是2018.1.1,有版本需要的可以去官网下载。 IDEA环境搭建 添加Lua插件 双击打开IDEA编辑器,然后找到最下面的configure。 打开后点击Plugins。 在搜索栏中搜索EmmyLua。 没有安装的话会显示No plugins found.Search in
阅读全文
摘要:XLua导入 搜索XLua,找打GitHub上的开源工程,下载到本地。 新建一个Unity工程。 Project 下右键打开文件夹。 返回Assets上一级,将下载好的Xlua拷贝到当前文件夹。 代码热更新依赖于资源热更新。
阅读全文
摘要:Lua是动态类型语言,变量不需要类型定义。 数据类型 | 数据类型 | 描述 | | : : | : : | | nil | 空(在条件表达式中相当于false) | | Boolean | 布尔值:true / false | | number | 浮点数(Lua中整数浮点数不做区分) | | s
阅读全文
摘要:什么是AB包:它是一个存在于硬盘上的文件,可以称为压缩包,这个压缩包可以是一个文件夹。 AB包的作用:将资源放到服务器上,当客户端需要的时候从服务器中获取,程序不需要重新安装。 AB包定义:Unity资源压缩包。 AB包依赖的资源:图片,文本,音频,视频,模型,动画,预制体,场景资源,脚本,可编辑脚
阅读全文
摘要:快速添加盒型碰撞器 批量设置字体 查询信息 记录历史记录,清除记录 using System.Collections.Generic; using UnityEngine; using UnityEditor; using System; using UnityEngine.UI; public c
阅读全文
摘要:被观察者 using UnityEngine; // 声明一个委托 public delegate void Tesk(); // 老板 public class Boss : MonoBehaviour { // 创建一个委托 public static Tesk ReleaseTask; voi
阅读全文
摘要:单例模板 public abstract class Singleton<T> where T : new() { private static T instance; public static T Instance { get { if (instance == null) instance =
阅读全文
摘要:单例模板 public class Singleton<T> where T : new() { private static T instance; public static T Instance { get { if (instance == null) instance = new T();
阅读全文
摘要:消息头:消息唯一标识,用来区分当前网络请求的类型。登陆就做账号验证,聊天就做消息群发。 一般使用数字表示,字符串比较耗内存。1byte范围为0 ~ 255,2byte范围为0 ~ 65535,消息头一般情况2byte就够了。 消息体:真正传输的数据。 假设1001为登陆请求,1004为聊天功能。 /
阅读全文
摘要:Socket 通讯可以用到Unity中。 Unity支持多线程,但若是涉及到UI或UnityAPI时不支持。 单独开启一个线程接收数据,但主线程的无法和其数据进行交互,可以使用消息队列机制解决。 消息队列机制:在接收数据的线程和主线程中设置一个队列,接收数据的线程负责向队列中存放数据,主线程负责从队
阅读全文
摘要:socket是在应用层和传输层之间的一个抽象层,可以理解为在协议上实现的一个功能,socket本质是编程接口,TCP/IP实际上是一个协议栈,必须要具体实现,同时还要提供对外的操作接口,这就是socket接口。 Socket通讯模型 Server服务器创建Socket,等待接收请求。 Client客
阅读全文
摘要:Queue 先进先出,相当于做核酸排队。 // 创建队列 Queue<string> 排队做核酸 = new Queue<string>(); // 入队 排队做核酸.Enqueue("张三"); 排队做核酸.Enqueue("李四"); 排队做核酸.Enqueue("王五"); // 出队 排队做
阅读全文
摘要:JSON 是一种轻量级的数据交换格式。 简洁和清晰的层次结构使得JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提供网络传输效率。 json大体结果分为两大部分json数组,json数据。 json数组 是以[]包裹,数组内可以出现多个json数据。 json数据
阅读全文
摘要:网络协议 网络协议是一种网络通讯语言,为连接不同操作系统和不同硬件体系结构的互联网提供通信支持。 开发者一般使用最上层应用层的协议来进行网络数据传输,数据会从上层协议逐渐向下层传输,逐渐进行数据加工,添加底层传输必备的通讯数据来进行交互。到达对方通讯节点后从下层到上层依次拆解数据包,对方就可收到对应
阅读全文
摘要:深拷贝浅拷贝 int num1 = 10; // 这里是将num1对应的值赋给num2 int num2 = num1; // num2自增10,num2变成20,但num1还是10,这里使用的是深拷贝 num2 +=10; 深拷贝:拿到的是对应的值。 int[] list1 = { 1, 2, 3
阅读全文
摘要:public partial class People : MonoBehaviour { } public partial class People { } 对一个类进行拆分,用于并行开发,但定义的参数和函数名不能重复。
阅读全文
摘要:void Start() { // 作为可变参数进行产地 Debug.Log(Sum(1, 2, 3)); // 作为数组进行传递 Debug.Log(Sum1(new int[] { 1, 2, 3 })); } // 可变参数 public int Sum(params int[] a) { i
阅读全文
摘要:值传递:把数值传进入,自己不进去。 引用传递:把自己传到函数内存去。 void Start() { int a = 0; Add(ref a); Sub(out a); } void Add(ref int a) { } void Sub(out int a) { a = 0; } ref和out的
阅读全文
摘要:在不修改原始代码的情况下添加新的成员方法(只能添加成员方法) 如:给数组添加一个求和功能 public static class ExtArray { public static double Sum(this Array o) { double sum = 0; foreach (var item
阅读全文