自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unity UI同名自动绑定

/ 在Inspector面板中绘制带有AutoBindSameName属性的字段。/// 这个类不要放在Editor中。/// 这个类方到Editor下。

2023-06-01 17:27:57 236

原创 事件系统二

using System;using System.Collections.Generic;public class Messenger { public delegate void MessengerCallback(object value); public Dictionary<MsgType, MessengerCallback> eventTable...

2019-11-09 11:27:11 188

原创 事件系统一

–不解释了#define REQUIRE_LISTENER using System;using System.Collections.Generic;using UnityEngine; static internal class Messenger { #pragma warning disable 0414#pragma warning restore 0414 ...

2019-11-09 11:25:47 845

原创 XLua Lua访问C#中的方法(四)访问委托、事件

委托在使用Lua代码访问C#委托时需要注意,访问委托类型的方式与访问静态变量的方式相同,访问(静态/非静态)委托的变量的方式与访问(静态/非静态)成员变量的方式相同由于在Lua中没有"+=“和”-=“操作符,在增加委托链的时候只能使用”+“和”-"操作符using UnityEngine;using XLua;[LuaCallCSharp]public class Delegat...

2019-04-14 17:08:31 10284

原创 XLua Lua访问C#中的方法(四)访问枚举

在Lua中有以下五种方法可以访问到枚举变量:当作普通的静态属性访问使用__CastFrom函数,从枚举值对应的数值做类型转换使用__CastFrom函数,从枚举值对应的字符串做类型转换直接传入枚举值对应的数值直接传入枚举值对应的字符串官方文档上只提到了前三种方法,并且方法2和方法3需要生成代码才能使用,不过经过实验发现,不生成代码时上述五种方法都能够使用using System.C...

2019-04-14 16:28:46 6666

原创 XLua Lua访问C#中的方法(四)可变参数与默认参数

定义SpecialParam类,包含一个有默认参数的函数和一个有可变参数的函数在Lua中调用它们的时候,参数的规则与C#中相同using UnityEngine;using XLua;[LuaCallCSharp]public class SpecialParam{ public void DefaultParam(int arg0, string arg1 = "...

2019-04-14 16:14:17 2067

原创 XLua Lua访问C#中的方法(三)操作符重载和函数重载

操作符重载和函数重载C#中定义的操作符重载和函数重载在Lua中基本上能够使用,不过需要注意的是由于Lua中表示数值的类型只有一种(number),所以C#中对于数值类型之间的重载是不能够正确的识别的,通常只会调用类型符合的重载函数列表中先定义的函数假设有下面两个C#类,在Vector类中重载了操作符"+",在Overload类中对函数Add进行了重载,类型分别是int,float和string...

2019-04-14 16:05:11 1580

原创 XLua Lua访问C#中的方法(二)访问多个参数输入,多个返回值的方法

访问C#复杂函数对于参数,Lua会从左到右取C#函数中的普通参数或者ref参数依次作为自己的参数对于返回值,Lua会从左到右取C#函数中的返回值、ref参数或者out参数依次作为自己的返回值例如,对于下面的函数ComplexFunctionusing UnityEngine;using XLua;[LuaCallCSharp]public class ComplexClass...

2019-04-14 15:34:28 1705

原创 XLua Lua访问C#中的方法(一)普通访问

using System;using System.IO;using System.Text;using UnityEngine;using XLua;public class HelloWorld01 : MonoBehaviour{ private LuaEnv luaEnv; void Start() { luaEnv = new L...

2019-04-14 15:07:19 2394

原创 XLua C#访问Lua文件中一个全局的function 《二》映射到LuaFunction来访问

2、映射到LuaFunction 这种方式的优缺点刚好和第一种相反。使用也简单,LuaFunction上有个变参的Call函数,可以传任意类型,任意个数的参数,返回值是object的数组,对应于lua的多返回值。四、使用建议1、访问lua全局数据,特别是table以及function,代价比较大,建议尽量少做,比如在初始化时把要调用的lua function获取一次(映射到delegate...

2019-04-14 11:30:39 406

原创 XLua C#访问Lua文件中一个全局的function 《一》同过映射到delegate访问Lua方法

官方文档:三、访问一个全局的function 仍然是用Get方法,不同的是类型映射。 1、映射到delegate这种是建议的方式,性能好很多,而且类型安全。缺点是要生成代码(如果没生成代码会抛InvalidCastException异常)。delegate要怎样声明呢? 对于function的每个参数就声明一个输入类型的参数。多返回值要怎么处理?从左往右映射到c#的输出参数,输出参数包括...

2019-04-14 11:19:35 1099

原创 XLua C#访问Lua文件中一个全局的table《四》映射到LuaTable类

XLua文档4: 4、另外一种by ref方式:映射到LuaTable类这种方式好处是不需要生成代码,但也有一些问题,比如慢,比方式2要慢一个数量级,比如没有类型检查。 private LuaEnv luaEnv; void Start() { luaEnv = new LuaEnv();//全局唯一 luaEnv.AddLoader...

2019-04-14 10:33:56 1398

原创 XLua C#访问Lua文件中一个全局的table《三》Dictionary和List映射

XLua文档第三条: 3、更轻量级的by value方式:映射到Dictionary<>,List<> 不想定义class或者interface的话,可以考虑用这个,前提table下key和value的类型都是一致的。> Dictionary映射 private LuaEnv luaEnv; vo...

2019-04-14 10:21:37 863

原创 XLua C#访问Lua文件中一个全局的table《二》interface映射

Xlua文档:2、映射到一个interface这种方式依赖于生成代码(如果没生成代码会抛InvalidCastException异常),代码生成器会生成这个interface的实例,如果get一个属性,生成代码会get对应的table字段,如果set属性也会设置对应的字段。甚至可以通过interface的方法访问lua的函数。 private LuaEnv luaEnv; ...

2019-04-13 21:21:46 751

转载 XLua C#访问Lua文件中一个全局的table《一》

方法一1、映射到普通class或struct定义一个class,有对应于table的字段的public属性,而且有无参数构造函数即可这种方式下xLua会帮你new一个实例,并把对应的字段赋值过去。table的属性可以多于或者少于class的属性。可以嵌套其它复杂类型。要注意的是,这个过程是值拷贝,如果class比较复杂代价会比较大。而且修改class的字段值不会...

2019-04-13 20:47:26 484

原创 XLua C#访问Lua文件中的全局变量

using System.IO;using System.Net;using System.Text;using UnityEngine;using XLua;public class HelloWorld01 : MonoBehaviour{ private LuaEnv luaEnv; void Start() { luaEnv = n...

2019-04-13 20:35:31 677

转载 Lua gc

引用自 http://www.runoob.com/lua/lua-garbage-collection.htmlLua 提供了以下函数collectgarbage ([opt [, arg]])用来控制自动内存管理:collectgarbage("collect"): 做一次完整的垃圾收集循环。通过参数 opt 它提供了一组不同的功能:collectgarbage("count"): ...

2019-04-13 18:15:27 699

原创 Lua coroutine(协同程序)

**定义和启动**--Lua里面的协同程序(coroutine)--暂定函数,可以挂起,可以一步一步的执行,可以暂停--第一种定义,启动--1、定义协同程序(coroutine.create)co=coroutine.create( function (a,b) print(a+b) end)--2、启动协程(coroutine.resume)...

2019-04-13 18:02:27 194

原创 Lua元表——普通表(__index,__newindex,__call,__add,__tostring,.....等等)

一 关键字 __index(当调用原表中不存在的索引的时候,会调用__index对应的方法或者元表)--元表 metatablemyTabel={'Lua','Java','C#','C++'}--普通表mymetatable={ __index=function (tab,key)--元表对应的普通表,key访问的索引 --当普通表的索引不存在的时...

2019-04-13 16:54:05 808

原创 UnityEditor——GUI(3)基础

using System.Collections;using System.Collections.Generic;using UnityEngine;// 标签public class ScreenDisplay : MonoBehaviour{ void OnGUI() { //左上角 ...

2019-04-12 13:02:17 253

原创 Unity资源热更新(1)简单版

1.资源路径定义using System.Collections;using System.Collections.Generic;using UnityEngine;public class AssetPathDefine{ public const string fileRes = "/BundleResources"; //打包Ass...

2019-04-12 11:21:26 1219

原创 UnityEditor——GUI(2)ContextMenu(MonoBehavior菜单)

还有一些特殊菜单 Asset/..... GameObject/... Component ....等 会在相应的区域生成一样的菜单using UnityEngine;public class MyMono : MonoBehaviour{ // ContextMenuItem(string name, string function) //右键点击这个属性会...

2019-04-11 22:59:21 590

原创 UnityEditor——GUI(1)MenuItem(菜单)

菜单MenuItem(string path,bool isActive,int 分隔符号和排序) 三个参数path代表路径 isActive代表这个菜单是否可用,需要配合使用,下面说明using UnityEditor;using UnityEngine;public class FirstMenu{ [MenuItem("Tool/FirstMen...

2019-04-11 22:16:27 440 1

原创 Unity实现类似Dotween链式结构扩展(Audio)...

转载自http://www.manew.com/forum.php?mod=viewthread&tid=139396&extra=page%3D1%26filter%3Dtypeid%26typeid%3D497驱动类using UnityEngine;/// <summary>/// 音频事件驱动器/// </summa...

2019-04-02 12:59:21 647

原创 unity assetbunle(-)

Unity Assetbunle(-)加粗样式清除文件夹下所有Assetbundle的assetBundleName private static void ClearAssetBundleName(DirectoryInfo directoryInfo) { if (directoryInfo.Exists) { Dir...

2019-04-01 16:00:10 207

原创 Unity 文件(文件夹)操作

Unity 文件(文件夹)操作文件拷贝 private static void CopyFile(string sourcePath,string targetPath) { FileInfo fileinfo = new FileInfo(targetPath); if (File.Exists(sourcePath)){...

2019-04-01 12:59:53 3657

原创 C# TCP网络编程5(分包和粘包二)

一:TCP粘包产生的原理1,TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。出现粘包现象的原因是多方面的,它既可能由发送方造成,也可能由接收方造成。2,发送方引起的粘包是由TCP协议本身造成的,TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一包数据。若连续几次发送的数据都很少,通常TCP会根据优化算法把这些数据合成一...

2019-03-23 17:08:48 1829 1

原创 C# TCP网络编程4(分包和粘包一)

花港饭店还不能

2019-03-23 15:10:41 3775

原创 C# TCP网络编程3

C# TCP网络编程 处理客户端退出导致的异常处理1、在try Cathy 中处理… class Program { static void Main(string[] args) { ///服务端代码 Socket serverSocket = new Socket(AddressFamily.Inte...

2019-03-23 14:44:48 233

原创 C# TCP网络编程2

C# TCP网络编程 (二)实现异步(一)接收数据实现多个客户端连接,实现一个客户端循环接收数据… class Program { static void Main(string[] args) { ///服务端代码 Socket serverSocket = new Socket(AddressFamil...

2019-03-23 14:32:33 502

原创 C# TCP网络编程1

Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Parse("192.168.1.102"); IPEndPoint ipEndPoint = new IPEndPoint(ip, 3344); serverSoc

2019-03-23 13:41:27 347

空空如也

空空如也

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

TA关注的人

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