短板知识:lua使用c#泛型
短板知识:lua使用c#泛型
坑:lua使用C#重载方法
解决思路:
1.有C#的方法去整值
2.lua的math.floor
坑:lua使用C#重载方法
一共有四种坐标系:
全局坐标系 World Coordinate System
局部坐标系 Local Coordinate System
屏幕坐标系 Screen Space
视口坐标系 ViewPort Space
导入util库
把util文件放到补丁脚本文件夹
require 'util'
util.hotfix.ex(class,'method',function(self)
self.method()
--自己的代码
end)
注销方法同xlua.hot
坑:
lua放在start里 无法保证补丁会在所需start之后,导致无效
要保证打补丁要先执行。
判断鼠标是否点在UI上
EventSystems.EventSystem.current.IsPointerOverGameObject()
补丁流程
1.using XLua;
2.打标签 [Hotfix]
3.编写lua脚本
xlua.hotfix(classname,methodname,function(self)
--方法代码
end)
坑:bullectAudio取不到值
private AudioSource bullectAudio;
private属性不能直接用,需要加xlua.private_accessible(calss)
坑1:注销虚拟机委托
void Start () {
LuaEnv env = new LuaEnv();
env.AddLoader(MyLoader);
env.DoString("require 'fish'");
}
byte[] MyLoader(ref string pathfile)
{
string absPath = @"E:\ProjA\LUALearn\" + pathfile + ".lua.txt";
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath));
}
坑:
lua编码使用UTF8编码格式
打包前删除例子
缺少2个步骤
1.xlua -- 第一行按钮 生成
2.xlua -- 第三行按钮 注入
--将tools复制到工程文件夹
--dll文件复制到工程的Editor
位于Unity2017\Editor\Data\Managed
复制到Assets\XLua\Src\Editor
Unity.Cecil.dll
Unity.Cecil.Mdb.dll
Unity.Cecil.Pdb.dll
坑:工程目录不能带中文
延时功能可以使用,0.7s是延时时间
Invoke("Prize", 0.7f);
模式 框架 了解一下
以后录视频可以不要搞背景音乐么
借此机会把cocos-creator js一起学习了
最后老师写的用户名限制这里如果用正则表达式效果会更好哦
if (iptName.text != "")
{
//TODO
//发送名字数据到服务器,登陆到主城
}
else
{
GameRoot.AddTips("当前名字不符合规范");
}
更改为
Regex rex = new Regex(@"^[\u4E00-\u9FA5A-Za-z0-9]+$");
var result = rex.Match(iptName.text);
if (!result.Success)
{
GameRoot.AddTips("当前用户名不符合规范!");
return;
}else
{
//TODO
//发送名字数据到服务器,登陆到主城
}
)
WHERE和HAVING的区别:WHERE是一个约束声明,是在对查询结果进行分组前,将不符合WHERE条件的行去掉,即在分组之前过滤数据。WHERE语句中不能包含聚组函数。WHERE语句显示特定的行。HAVING是一个过滤声明,是筛选满足条件的组,即在分组之后过滤数据。HAVING语句中可以包含聚组函数。HAVING语句显示特定的组。WHERE语句在GROUP BY之前执行,HAVING语句在GROUP BY之后执行。
LIKE 模式匹配 注:_ 只能匹配一个字符,% 能匹配任何一个字符序列(包括空序列在内)