private void Awake() { //用LUA初始化GameConfigs LuaUtility.DoString("config.mapconfig"); //初始化ModelCenter ModelCenter.Instance.Init(); }
public void TestFromLuaUnity() { string test_code = "return {vec3={x=1.2, y=3.45, z=6.7890}, vec2={x=1, y=2}, rota={x=1,y=2,z=3,w=4}, color={r=1,g=2,b=3,a=4}}"; var obj = LuaUtility.FromLua <TestLuaUnity>(test_code); Assert.IsNotNull(obj); Assert.IsNotNull(obj.vec2); Assert.IsNotNull(obj.vec3); Assert.IsNotNull(obj.color); Assert.IsNotNull(obj.rota); AssertFloat(1.2, obj.vec3.x); AssertFloat(3.45, obj.vec3.y); AssertFloat(6.7890, obj.vec3.z); AssertFloat(1, obj.vec2.x); AssertFloat(2, obj.vec2.y); AssertFloat(1, obj.rota.x); AssertFloat(2, obj.rota.y); AssertFloat(3, obj.rota.z); AssertFloat(4, obj.rota.w); AssertFloat(1, obj.color.r); AssertFloat(2, obj.color.g); AssertFloat(3, obj.color.b); AssertFloat(4, obj.color.a); }
public void TestToLuaInlay() { var data = new TestDataInlay(); data.id = 1; data.data_int = new TestLuaInt(); data.data_int.i = 2; data.content = TestStr; data.data_base = new TestDataBase(); data.data_base.int_val = 3; data.data_base.float_val = 4.56; data.data_base.str_val = TestStr; data.data_base.bool_val = false; var str = LuaUtility.ToLua(data); Assert.IsNotNull(str); Assert.IsTrue(str.Contains("id = 1,")); Assert.IsTrue(str.Contains("data_int = {")); Assert.IsTrue(str.Contains("i = 2,")); Assert.IsTrue(str.Contains("data_base = {")); Assert.IsTrue(str.Contains("int_val = 3,")); Assert.IsTrue(str.Contains("float_val = 4.56,")); Assert.IsTrue(str.Contains("str_val = \"" + TestStr)); Assert.IsTrue(str.Contains("bool_val = false,")); Assert.IsTrue(str.Contains("content = \"" + TestStr)); }
public void TestFromLuaList2() { var test_list = new List <int>() { 8, 6, 5, 3, 4, 2, 1, 7, 0, 9, 10 }; string test_code = "return {nums={"; var str_list = new List <string>(); for (int i = 0; i < test_list.Count; i++) { str_list.Add("[" + (i + 1) + "] = " + test_list[i] + ", "); } //打乱顺序 SwitchListValue(str_list, 0, 3); SwitchListValue(str_list, 1, 6); SwitchListValue(str_list, 2, 9); SwitchListValue(str_list, 4, 7); foreach (var str in str_list) { test_code += str; } test_code += "}}"; var obj = LuaUtility.FromLua <TestDataList>(test_code); Assert.IsNotNull(obj); Assert.IsNotNull(obj.nums); Assert.AreEqual(test_list.Count, obj.nums.Count); for (int i = 0; i < test_list.Count; i++) { Assert.AreEqual(test_list[i], obj.nums[i]); } }
private static void Export() { SceneInfoForServer scene_info = Selection.activeTransform.GetComponent <SceneInfoForServer>(); if (scene_info == null) { EditorUtility.DisplayDialog("Warning", "you must select a GameObject with SceneInfoForServer component", "Ok"); return; } SceneInfoForServer export_info = new SceneInfoForServer(); export_info.scene_id = scene_info.scene_id; export_info.scene_name = scene_info.scene_name; DoorInfo[] door_list = Selection.activeTransform.GetComponentsInChildren <DoorInfo>(); export_info.door_list = new List <DoorInfo>(door_list); BornInfo[] born_list = Selection.activeTransform.GetComponentsInChildren <BornInfo>(); export_info.born_list = new List <BornInfo>(born_list); NPCInfo[] npc_list = Selection.activeTransform.GetComponentsInChildren <NPCInfo>(); export_info.npc_list = new List <NPCInfo>(npc_list); MonsterInfo[] monster_list = Selection.activeTransform.GetComponentsInChildren <MonsterInfo>(); export_info.monster_list = new List <MonsterInfo>(monster_list); string content = LuaUtility.ToLua(export_info); content = "local config = " + content; Debug.Log(content); content += "\nreturn config"; string save_file_path = SavePath + "config_scene_" + export_info.scene_id + ".lua"; File.WriteAllText(save_file_path, content); Debug.Log("save to file path : " + save_file_path); }
public void TestToLuaUnity() { var data = new TestLuaUnity(); data.vec2 = new Vector2(1, 2); data.vec3 = new Vector3(3, 4.5f, 6.7f); data.rota = new Quaternion(9, 8, 7, 6); data.color = new Color(1, 2, 3, 4); var str = LuaUtility.ToLua(data); Assert.IsNotNull(str); Assert.IsTrue(str.Contains("vec2 = {")); Assert.IsTrue(str.Contains("x = 1,")); Assert.IsTrue(str.Contains("y = 2,")); Assert.IsTrue(str.Contains("vec3 = {")); Assert.IsTrue(str.Contains("x = 3,")); Assert.IsTrue(str.Contains("y = 4.5,")); Assert.IsTrue(str.Contains("z = 6.7,")); Assert.IsTrue(str.Contains("rota = {")); Assert.IsTrue(str.Contains("eulerAngles = {")); Assert.IsTrue(str.Contains("x = 359.0035,")); Assert.IsTrue(str.Contains("y = 105.124,")); Assert.IsTrue(str.Contains("z = 97.49586,")); Assert.IsTrue(str.Contains("color = {")); Assert.IsTrue(str.Contains("r = 1,")); Assert.IsTrue(str.Contains("g = 2,")); Assert.IsTrue(str.Contains("b = 3,")); Assert.IsTrue(str.Contains("a = 4,")); }
public void TestToLuaList() { var data = new TestDataList(); data.nums = new List <int>(); data.nums.Add(1); data.nums.Add(21); data.nums.Add(621); data.nums.Add(2331); data.nums.Add(0); data.nums.Add(564); data.nums.Add(45643); var str = LuaUtility.ToLua(data); Assert.IsNotNull(str); Assert.IsTrue(str.Contains("nums = {")); int lastIndex = -1; for (int i = 0; i < data.nums.Count; i++) { var newIndex = str.IndexOf(data.nums[i] + ","); Assert.IsTrue(newIndex != -1); Assert.IsTrue(newIndex > lastIndex); lastIndex = newIndex; } }
public void TestToLuaInt() { var data = new TestLuaInt(); data.i = 1234567890; var str = LuaUtility.ToLua(data); Assert.IsNotNull(str); Assert.IsTrue(str.Contains("i = 1234567890,")); }
public void TestFromLuaEnum() { string test_code = "return {e=1, E=3}"; var obj = LuaUtility.FromLua <TestDataEnum>(test_code); Assert.IsNotNull(obj); Assert.IsNotNull(obj.e); Assert.AreEqual(TestEnum.Haha, obj.e); Assert.AreEqual(TestEnum2.D, obj.E); }
// Start is called before the first frame update void Start() { LuaUtility.Initialize(); var objects = LuaUtility.luaEnv.DoString(luaScript.bytes, "luaInjection"); var table = objects[0] as LuaTable; var luaInitialize = table.Get <Action <LuaTable> >("OnInitialize"); table.Set("go", this.gameObject); luaInitialize?.Invoke(table); }
public void TestFromLuaDic2() { string test_code = "return {dic={[\"a\"]=1.2, [\'b\']=3.45, [\"c\"]=6.7890}}"; var obj = LuaUtility.FromLua <TestDataDicStrFlt>(test_code); Assert.IsNotNull(obj); Assert.IsNotNull(obj.dic); AssertFloat(1.2, obj.dic["a"]); AssertFloat(3.45, obj.dic["b"]); AssertFloat(6.7890, obj.dic["c"]); }
public void TestFromLuaIntExtraData() { var str = @"return {i=1, ii=3, t={}, f=1.23, b=false, tt={1,2,3, ttt={a=1}}}"; LuaUtility.IsShowLog = true; var obj = LuaUtility.FromLua <TestLuaInt>(str); LuaUtility.IsShowLog = false; Assert.IsNotNull(obj); Assert.AreEqual(obj.i, 1); }
public void TestFromLuaInlay() { string test_code = "return { id = 987, data_int = { i = 23847, }, data_base = " + TestLexStateBaseDataStr + ", content = '" + TestStr + "' }"; var obj = LuaUtility.FromLua <TestDataInlay>(test_code); Assert.IsNotNull(obj); Assert.AreEqual(987, obj.id); Assert.AreEqual(TestStr, obj.content); TestDataBase(obj.data_base); Assert.IsNotNull(obj.data_int); Assert.AreEqual(23847, obj.data_int.i); }
public void TestToLuaEnum() { var data = new TestDataEnum(); data.e = TestEnum.Haha; data.E = TestEnum2.D; var str = LuaUtility.ToLua(data); Assert.IsNotNull(str); Assert.IsTrue(str.Contains("e = 1,")); Assert.IsTrue(str.Contains("E = 3,")); }
public static void Send2Lua(int id, byte[] bytes) { try { var byteBuffer = new LuaByteBuffer(bytes); LuaUtility.CallLuaModuleMethod("Protol.ProtoProcess", "Process", id, byteBuffer); } catch (Exception e) { LogHelper.PrintError($"[LuaNetUtility]Send2Lua error,id:{id},info:{e}."); } }
private void Awake() { m_Table = LuaUtility.GetNewLuaTable(); LuaTable newTable = LuaUtility.GetNewLuaTable(); newTable.Set <string, LuaTable>("__index", LuaUtility.Global); m_Table.SetMetaTable(newTable); newTable.Dispose(); LuaUtility.DoString(m_FilePath, this.gameObject.name, m_Table); Debug.Log(0x01); }
public void TestFromLuaList() { string test_code = "return {nums={0,1,2,3,4,5,6,7,8,9,10}}"; var obj = LuaUtility.FromLua <TestDataList>(test_code); Assert.IsNotNull(obj); Assert.IsNotNull(obj.nums); Assert.AreEqual(11, obj.nums.Count); for (int i = 0; i < 11; i++) { Assert.AreEqual(i, obj.nums[i]); } }
public void TestFromLuaListTable() { string test_code = "return {data={{i=1}, {i=2}, {i=3}, {i=4}, {i=5}, {i=6}, {i=7}, {i=8}, {i=9}, {i=10}, {i=11}, }, }"; var obj = LuaUtility.FromLua <TestDataListTable>(test_code); Assert.IsNotNull(obj); Assert.IsNotNull(obj.data); Assert.AreEqual(11, obj.data.Count); for (int i = 0; i < 11; i++) { Assert.AreEqual(i + 1, obj.data[i].i); } }
public void TestFromLuaComment() { var str = @"--哈哈忽略注释吧 --[[123456 忽略多行注释吧1 忽略多行注释吧2 654321--]] return {i=33}"; var obj = LuaUtility.FromLua <TestLuaInt>(str); Assert.IsNotNull(obj); Assert.AreEqual(obj.i, 33); }
private void Init() { m_Table = LuaUtility.GetNewLuaTable(); LuaTable temp = LuaUtility.GetNewLuaTable(); temp.Set <string, LuaTable>("__index", LuaUtility.Global); m_Table.SetMetaTable(temp); temp.Dispose(); LuaUtility.DoString(m_FilePath, this.gameObject.name, m_Table); m_Table.Get <string, Action>("BindController", out bindController); m_Table.Get <string, Action>("AddListeners", out addListeners); m_Table.Get <string, Action>("OnPerOpen", out onPerOpen); m_Table.Get <string, Action>("OnAfterOpen", out onAfterOpen); m_Table.Get <string, Action>("OnPerClose", out onPerClose); m_Table.Get <string, Action>("OnAfterClose", out onAfterClose); }
public void TestToLuaStaticArray() { var obj = new TestDoubleStaticArray(); for (int i = 0; i < obj.ds.Length; i++) { obj.ds[i] = i; } var code = LuaUtility.ToLua(obj); Debug.LogFormat("LuaUtilityTest[604:50 TestToLuaStaticArray] code:{0}", code); for (int i = 0; i < obj.ds.Length; i++) { Assert.IsTrue(code.Contains(string.Format("{0},", i))); } }
public void TestToLuaPolymorphic() { var data = new List <TestAnimal>(); data.Add(new TestDog()); data.Add(new TestCat()); var str = LuaUtility.ToLua(data); Assert.IsNotNull(str); var dog_type_name = typeof(TestDog).FullName + ", " + typeof(TestDog).Assembly.GetName().Name; var cat_type_name = typeof(TestCat).FullName + ", " + typeof(TestCat).Assembly.GetName().Name; Assert.IsTrue(str.Contains(string.Format("[\"$type\"] = \"{0}\"", dog_type_name))); Assert.IsTrue(str.Contains(string.Format("[\"$type\"] = \"{0}\"", cat_type_name))); Assert.IsFalse(str.Contains("TestAnimal")); }
public void TestFromLuaIntLocal() { var str = @"local t = {i=1} return t"; var obj = LuaUtility.FromLua <TestLuaInt>(str); Assert.IsNotNull(obj); Assert.AreEqual(obj.i, 1); // CAT_TODO: return前的赋值语法 LuaUtility.IsShowLog = true; str = @"local t = {i=1} t['i']=1 t['i']=2 return t"; obj = LuaUtility.FromLua <TestLuaInt>(str); Assert.IsNotNull(obj); Assert.AreEqual(obj.i, 1); LuaUtility.IsShowLog = false; }
public void TestToLuaBase() { var data = new TestDataBase(); data.int_val = 1; data.float_val = 2.34; data.str_val = TestStr; data.bool_val = true; var str = LuaUtility.ToLua(data); Assert.IsNotNull(str); Assert.IsTrue(str.Contains("int_val = 1,")); Assert.IsTrue(str.Contains("float_val = 2.34,")); Assert.IsTrue(str.Contains("str_val = \"" + TestStr)); Assert.IsTrue(str.Contains("bool_val = true,")); }
private static void Export() { SceneInfoForServer export_info = new SceneInfoForServer(); export_info.scene_id = 1001; export_info.scene_name = "scene_name"; export_info.door_list = new List <DoorInfo>(); DoorInfo door = new DoorInfo(); door.door_id = 1; door.pos_x = 1.1f; door.pos_y = 2.2f; door.pos_z = 3.123456f; door.target_scene_id = 1002; door.target_x = 11.1f; door.target_y = 22.2f; door.target_z = 33.123456f; export_info.door_list.Add(door); export_info.door_list.Add(door); export_info.npc_list = new List <NPCInfo>(); NPCInfo npc = new NPCInfo(); npc.npc_id = 1; npc.pos_x = 1.1f; npc.pos_y = 2.2f; npc.pos_z = 3.123456f; export_info.npc_list.Add(npc); export_info.monster_list = new List <MonsterInfo>(); MonsterInfo monster = new MonsterInfo(); monster.monster_id = 1; monster.pos_x = 1.1f; monster.pos_y = 2.2f; monster.pos_z = 3.123456f; export_info.monster_list.Add(monster); export_info.test_dic = new Dictionary <int, string>(); export_info.test_dic.Add(1, "one"); export_info.test_dic.Add(3, "three"); export_info.test_dic.Add(6, "haha"); string content = LuaUtility.ToLua(export_info); Debug.Log("SceneInfoExporterForServer:Export content : " + content); }
public void TestFromLuaString() { var str = "return {str=\"" + TestStr + "\"}"; var obj = LuaUtility.FromLua <TestLuaString>(str); Assert.IsNotNull(obj); Assert.AreEqual(TestStr, obj.str); str = @"return {str='" + TestStr + "'}"; obj = LuaUtility.FromLua <TestLuaString>(str); Assert.IsNotNull(obj); Assert.AreEqual(TestStr, obj.str); var str_with_line = @"abcde\ fghijk"; str = "return {str=\"" + str_with_line + "\"}"; Debug.LogFormat("LuaUtilityTest[191:04] str:{0}", str); obj = LuaUtility.FromLua <TestLuaString>(str); Assert.IsNotNull(obj); //注意expect_str是故意和str_with_line不一样的,因为lua会把\符号给忽略掉或者转义 var expect_str = @"abcde fghijk"; Assert.AreEqual(expect_str, obj.str); //CAT_TODO:加上\符号的转义测试 // str_with_line = @"abcde\\a\\bfghijk"; // str = "return {str=\""+str_with_line+"\"}"; // Debug.LogFormat("LuaUtilityTest[191:04] str:{0}", str); // obj = LuaUtility.FromLua<TestLuaString>(str); // Assert.IsNotNull(obj); // //注意expect_str是故意和str_with_line不一样的,因为lua会把\符号给忽略掉或者转义 // expect_str = @"abcdefghijk"; // Assert.AreEqual(expect_str, obj.str); string test_str_mut = @"123456 多行字符串1 多行字符串2 654321"; str = @"return {str=[[" + test_str_mut + "]]}"; obj = LuaUtility.FromLua <TestLuaString>(str); Assert.IsNotNull(obj); Assert.AreEqual(test_str_mut, obj.str); }
public void TestFromLuaInt() { var str = @"return {i=1}"; var obj = LuaUtility.FromLua <TestLuaInt>(str); Assert.IsNotNull(obj); Assert.AreEqual(obj.i, 1); str = @"return {i=-1}"; obj = LuaUtility.FromLua <TestLuaInt>(str); Assert.IsNotNull(obj); Assert.AreEqual(obj.i, -1); str = @"{i=0}"; obj = LuaUtility.FromLua <TestLuaInt>(str); Assert.IsNotNull(obj); Assert.AreEqual(obj.i, 0); }
public void TestToLuaDic3() { var data = new TestDataDicIntStr(); data.dic = new Dictionary <int, string>(); data.dic.Add(1, "a"); data.dic.Add(3, "c"); data.dic.Add(111, "d"); data.dic.Add(-1234, "e"); data.dic.Add(0, "b"); var str = LuaUtility.ToLua(data.dic); Assert.IsNotNull(str); Assert.IsTrue(str.Contains("[1] = \"a\",")); Assert.IsTrue(str.Contains("[3] = \"c\",")); Assert.IsTrue(str.Contains("[111] = \"d\",")); Assert.IsTrue(str.Contains("[-1234] = \"e\",")); Assert.IsTrue(str.Contains("[0] = \"b\",")); }
public void TestFromLuaFloat() { var str = @"return {f=1.2345}"; var obj = LuaUtility.FromLua <TestLuaFloat>(str); Assert.IsNotNull(obj); AssertFloat(1.2345, obj.f); str = @"return {f=-1e+11}"; obj = LuaUtility.FromLua <TestLuaFloat>(str); Assert.IsNotNull(obj); Assert.AreEqual(float.Parse("-1e+11"), obj.f); AssertFloat(float.Parse("-1e+11"), obj.f); str = @"return {f=.2345}"; obj = LuaUtility.FromLua <TestLuaFloat>(str); Assert.IsNotNull(obj); AssertFloat(0.2345, obj.f); }
private void DrawScriptProperty(Rect position, SerializedProperty scriptPathProperty) { TextAsset scriptAsset = null; string scriptAssetPath = string.Empty; if (!string.IsNullOrEmpty(scriptPathProperty.stringValue)) { scriptAssetPath = LuaUtility.GetScriptAssetPath(scriptPathProperty.stringValue); scriptAsset = AssetDatabase.LoadAssetAtPath <TextAsset>(scriptAssetPath); if (scriptAsset == null) { scriptAsset = null; scriptPathProperty.stringValue = null; scriptAssetPath = string.Empty; } } Rect scriptRect = new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight); TextAsset newScriptAsset = (TextAsset)EditorGUI.ObjectField(scriptRect, "Lua Asset", scriptAsset, typeof(TextAsset), false); scriptRect.y += scriptRect.height; scriptRect.x += 20; scriptRect.width -= 20; EditorGUI.BeginDisabledGroup(true); { EditorGUI.TextField(scriptRect, "Script Path", scriptAssetPath); } EditorGUI.EndDisabledGroup(); if (newScriptAsset != scriptAsset) { if (newScriptAsset == null) { scriptPathProperty.stringValue = null; } else { string assetPath = AssetDatabase.GetAssetPath(newScriptAsset); scriptPathProperty.stringValue = LuaUtility.GetScriptPath(assetPath); } } }