Repository: LingJiJian/uLui
Branch: master
Commit: 92b0b3f492e6
Files: 974
Total size: 9.2 MB
Directory structure:
gitextract_b1oub49q/
├── .gitignore
├── Assembly-CSharp-Editor.csproj
├── Assembly-CSharp-firstpass.csproj
├── Assets/
│ ├── Game/
│ │ ├── @Lua/
│ │ │ ├── Base/
│ │ │ │ ├── LClass.lua
│ │ │ │ ├── LClass.lua.meta
│ │ │ │ ├── LGlobal.lua
│ │ │ │ ├── LGlobal.lua.meta
│ │ │ │ ├── LMessage.lua
│ │ │ │ ├── LMessage.lua.meta
│ │ │ │ ├── LVersion.lua
│ │ │ │ └── LVersion.lua.meta
│ │ │ ├── Base.meta
│ │ │ ├── Game/
│ │ │ │ ├── Common/
│ │ │ │ │ ├── EventNames.lua
│ │ │ │ │ ├── EventNames.lua.meta
│ │ │ │ │ ├── MsgId.lua
│ │ │ │ │ ├── MsgId.lua.meta
│ │ │ │ │ ├── NetworkManager.lua
│ │ │ │ │ ├── NetworkManager.lua.meta
│ │ │ │ │ ├── Util.lua
│ │ │ │ │ ├── Util.lua.meta
│ │ │ │ │ ├── i18n.lua
│ │ │ │ │ └── i18n.lua.meta
│ │ │ │ ├── Common.meta
│ │ │ │ ├── MsgBox.lua
│ │ │ │ ├── MsgBox.lua.meta
│ │ │ │ ├── Proto/
│ │ │ │ │ ├── masterd.bytes
│ │ │ │ │ └── masterd.bytes.meta
│ │ │ │ └── Proto.meta
│ │ │ ├── Game.meta
│ │ │ ├── Lib/
│ │ │ │ ├── protobuf/
│ │ │ │ │ ├── parser.lua
│ │ │ │ │ ├── parser.lua.meta
│ │ │ │ │ ├── protobuf.lua
│ │ │ │ │ └── protobuf.lua.meta
│ │ │ │ └── protobuf.meta
│ │ │ ├── Lib.meta
│ │ │ ├── import.lua
│ │ │ ├── import.lua.meta
│ │ │ ├── main.lua
│ │ │ └── main.lua.meta
│ │ ├── @Lua.meta
│ │ ├── Editor/
│ │ │ ├── AssetBundleMaker/
│ │ │ │ ├── ExportAssetBundles.cs
│ │ │ │ ├── ExportAssetBundles.cs.meta
│ │ │ │ ├── ExportConfigWindow.cs
│ │ │ │ └── ExportConfigWindow.cs.meta
│ │ │ ├── AssetBundleMaker.meta
│ │ │ ├── BmfontMaker/
│ │ │ │ ├── BMFont.cs
│ │ │ │ ├── BMFont.cs.meta
│ │ │ │ ├── BMFontReader.cs
│ │ │ │ ├── BMFontReader.cs.meta
│ │ │ │ ├── BMGlyph.cs
│ │ │ │ ├── BMGlyph.cs.meta
│ │ │ │ ├── BmBetterList.cs
│ │ │ │ ├── BmBetterList.cs.meta
│ │ │ │ ├── BmByteReader.cs
│ │ │ │ ├── BmByteReader.cs.meta
│ │ │ │ ├── BmFontEditor.cs
│ │ │ │ └── BmFontEditor.cs.meta
│ │ │ ├── BmfontMaker.meta
│ │ │ ├── Helper.cs
│ │ │ ├── Helper.cs.meta
│ │ │ ├── I18nExporter/
│ │ │ │ ├── I18nExporter.cs
│ │ │ │ └── I18nExporter.cs.meta
│ │ │ ├── I18nExporter.meta
│ │ │ ├── MakeDebugFile.cs
│ │ │ ├── MakeDebugFile.cs.meta
│ │ │ ├── TexturePackerImporter/
│ │ │ │ ├── SettingsTexturePackerImporter.txt
│ │ │ │ ├── SettingsTexturePackerImporter.txt.meta
│ │ │ │ ├── TexturePackerImporter.cs
│ │ │ │ └── TexturePackerImporter.cs.meta
│ │ │ └── TexturePackerImporter.meta
│ │ ├── Editor.meta
│ │ ├── Images/
│ │ │ ├── common/
│ │ │ │ ├── ctlv_bg.png.meta
│ │ │ │ ├── ctlv_joy.png.meta
│ │ │ │ ├── img_cat.png.meta
│ │ │ │ └── progress_bar.jpg.meta
│ │ │ ├── common.meta
│ │ │ ├── face/
│ │ │ │ ├── 0101.png.meta
│ │ │ │ ├── 0102.png.meta
│ │ │ │ ├── 0103.png.meta
│ │ │ │ ├── 0201.png.meta
│ │ │ │ ├── 0202.png.meta
│ │ │ │ └── 0203.png.meta
│ │ │ ├── face.meta
│ │ │ ├── num/
│ │ │ │ ├── +.png.meta
│ │ │ │ ├── -.png.meta
│ │ │ │ ├── 0.png.meta
│ │ │ │ ├── 1.png.meta
│ │ │ │ ├── 2.png.meta
│ │ │ │ ├── 3.png.meta
│ │ │ │ ├── 4.png.meta
│ │ │ │ ├── 5.png.meta
│ │ │ │ ├── 6.png.meta
│ │ │ │ ├── 7.png.meta
│ │ │ │ ├── 8.png.meta
│ │ │ │ └── 9.png.meta
│ │ │ └── num.meta
│ │ ├── Images.meta
│ │ ├── Models/
│ │ │ ├── CubeMap.mat
│ │ │ ├── CubeMap.mat.meta
│ │ │ ├── CubeMap.shader
│ │ │ ├── CubeMap.shader.meta
│ │ │ ├── Teddy/
│ │ │ │ ├── Materials/
│ │ │ │ │ ├── TeddyBear_color.mat
│ │ │ │ │ ├── TeddyBear_color.mat.meta
│ │ │ │ │ ├── TeddyBear_color.tga
│ │ │ │ │ ├── TeddyBear_color.tga.meta
│ │ │ │ │ ├── Teddy_DIF.mat
│ │ │ │ │ ├── Teddy_DIF.mat.meta
│ │ │ │ │ ├── Teddy_DIF.psd
│ │ │ │ │ ├── Teddy_DIF.psd.meta
│ │ │ │ │ ├── Teddy_Eye.mat
│ │ │ │ │ ├── Teddy_Eye.mat.meta
│ │ │ │ │ ├── Teddy_Eye.psd
│ │ │ │ │ └── Teddy_Eye.psd.meta
│ │ │ │ ├── Materials.meta
│ │ │ │ ├── Teddy.controller
│ │ │ │ ├── Teddy.controller.meta
│ │ │ │ ├── Teddy.fbx
│ │ │ │ ├── Teddy.fbx.meta
│ │ │ │ ├── TeddyBear.fbx
│ │ │ │ └── TeddyBear.fbx.meta
│ │ │ ├── Teddy.meta
│ │ │ └── cubemap.jpg.meta
│ │ ├── Models.meta
│ │ ├── Resources/
│ │ │ ├── Atlas/
│ │ │ │ ├── common.png.meta
│ │ │ │ ├── face.png.meta
│ │ │ │ └── num.png.meta
│ │ │ ├── Atlas.meta
│ │ │ ├── Audios/
│ │ │ │ ├── dungeon01.mp3.meta
│ │ │ │ ├── dungeon02.mp3.meta
│ │ │ │ ├── effect2.mp3.meta
│ │ │ │ ├── effect_bombPattern.mp3.meta
│ │ │ │ ├── effect_buttonClick.mp3.meta
│ │ │ │ ├── effect_clearPattern.mp3.meta
│ │ │ │ ├── effect_game_fail.mp3.meta
│ │ │ │ ├── effect_game_pass.mp3.meta
│ │ │ │ ├── effect_ice.mp3.meta
│ │ │ │ ├── effect_noclear.mp3.meta
│ │ │ │ ├── effect_timewarning.mp3.meta
│ │ │ │ ├── effect_unswap.mp3.meta
│ │ │ │ ├── endgame.mp3.meta
│ │ │ │ ├── enemy1_down 1.mp3.meta
│ │ │ │ ├── enemy1_down.mp3.meta
│ │ │ │ ├── enemy2_down 1.mp3.meta
│ │ │ │ ├── enemy2_down.mp3.meta
│ │ │ │ ├── enemy2_out 1.mp3.meta
│ │ │ │ ├── enemy2_out.mp3.meta
│ │ │ │ ├── enemy3_down 1.mp3.meta
│ │ │ │ └── enemy3_down.mp3.meta
│ │ │ ├── Audios.meta
│ │ │ ├── Prefabs/
│ │ │ │ ├── MsgBox.prefab
│ │ │ │ ├── MsgBox.prefab.meta
│ │ │ │ ├── Teddy.prefab
│ │ │ │ ├── Teddy.prefab.meta
│ │ │ │ ├── WindowGridView.prefab
│ │ │ │ ├── WindowGridView.prefab.meta
│ │ │ │ ├── grid_cell.prefab
│ │ │ │ ├── grid_cell.prefab.meta
│ │ │ │ ├── list_cell.prefab
│ │ │ │ ├── list_cell.prefab.meta
│ │ │ │ ├── page_cell.prefab
│ │ │ │ ├── page_cell.prefab.meta
│ │ │ │ ├── scorl_test.prefab
│ │ │ │ ├── scorl_test.prefab.meta
│ │ │ │ ├── tbl_test.prefab
│ │ │ │ └── tbl_test.prefab.meta
│ │ │ ├── Prefabs.meta
│ │ │ ├── Scenes/
│ │ │ │ ├── first.unity
│ │ │ │ ├── first.unity.meta
│ │ │ │ ├── second.unity
│ │ │ │ ├── second.unity.meta
│ │ │ │ ├── start.unity
│ │ │ │ └── start.unity.meta
│ │ │ ├── Scenes.meta
│ │ │ ├── Scripts/
│ │ │ │ ├── Demo/
│ │ │ │ │ ├── Firstui.cs
│ │ │ │ │ ├── Firstui.cs.meta
│ │ │ │ │ ├── Secondui.cs
│ │ │ │ │ ├── Secondui.cs.meta
│ │ │ │ │ ├── WindowGridView.cs
│ │ │ │ │ └── WindowGridView.cs.meta
│ │ │ │ ├── Demo.meta
│ │ │ │ ├── LBase/
│ │ │ │ │ ├── Game.cs
│ │ │ │ │ ├── Game.cs.meta
│ │ │ │ │ ├── LArchiveBin.cs
│ │ │ │ │ ├── LArchiveBin.cs.meta
│ │ │ │ │ ├── LArchiveBinFile.cs
│ │ │ │ │ ├── LArchiveBinFile.cs.meta
│ │ │ │ │ ├── LGameConfig.cs
│ │ │ │ │ ├── LGameConfig.cs.meta
│ │ │ │ │ ├── LLoadBundle.cs
│ │ │ │ │ ├── LLoadBundle.cs.meta
│ │ │ │ │ ├── LLuaBehaviourBase.cs
│ │ │ │ │ ├── LLuaBehaviourBase.cs.meta
│ │ │ │ │ ├── LLuaBehaviourInterface.cs
│ │ │ │ │ ├── LLuaBehaviourInterface.cs.meta
│ │ │ │ │ ├── LLuaTable.cs
│ │ │ │ │ ├── LLuaTable.cs.meta
│ │ │ │ │ ├── LResUpdate.cs
│ │ │ │ │ ├── LResUpdate.cs.meta
│ │ │ │ │ ├── LUtil.cs
│ │ │ │ │ └── LUtil.cs.meta
│ │ │ │ ├── LBase.meta
│ │ │ │ ├── LWidget/
│ │ │ │ │ ├── LButton.cs
│ │ │ │ │ ├── LButton.cs.meta
│ │ │ │ │ ├── LControlView.cs
│ │ │ │ │ ├── LControlView.cs.meta
│ │ │ │ │ ├── LDragView.cs
│ │ │ │ │ ├── LDragView.cs.meta
│ │ │ │ │ ├── LExpandListView.cs
│ │ │ │ │ ├── LExpandListView.cs.meta
│ │ │ │ │ ├── LExpandNode.cs
│ │ │ │ │ ├── LExpandNode.cs.meta
│ │ │ │ │ ├── LFPSView.cs
│ │ │ │ │ ├── LFPSView.cs.meta
│ │ │ │ │ ├── LGridPageView.cs
│ │ │ │ │ ├── LGridPageView.cs.meta
│ │ │ │ │ ├── LGridView.cs
│ │ │ │ │ ├── LGridView.cs.meta
│ │ │ │ │ ├── LHUDSort.cs
│ │ │ │ │ ├── LHUDSort.cs.meta
│ │ │ │ │ ├── LHUDView.cs
│ │ │ │ │ ├── LHUDView.cs.meta
│ │ │ │ │ ├── LInputfield.cs
│ │ │ │ │ ├── LInputfield.cs.meta
│ │ │ │ │ ├── LLabelAtlas.cs
│ │ │ │ │ ├── LLabelAtlas.cs.meta
│ │ │ │ │ ├── LListView.cs
│ │ │ │ │ ├── LListView.cs.meta
│ │ │ │ │ ├── LMacros.cs
│ │ │ │ │ ├── LMacros.cs.meta
│ │ │ │ │ ├── LMovieClip.cs
│ │ │ │ │ ├── LMovieClip.cs.meta
│ │ │ │ │ ├── LPageView.cs
│ │ │ │ │ ├── LPageView.cs.meta
│ │ │ │ │ ├── LPickMark.cs
│ │ │ │ │ ├── LPickMark.cs.meta
│ │ │ │ │ ├── LProgress.cs
│ │ │ │ │ ├── LProgress.cs.meta
│ │ │ │ │ ├── LRichText.cs
│ │ │ │ │ ├── LRichText.cs.meta
│ │ │ │ │ ├── LScrollView.cs
│ │ │ │ │ ├── LScrollView.cs.meta
│ │ │ │ │ ├── LSlider.cs
│ │ │ │ │ ├── LSlider.cs.meta
│ │ │ │ │ ├── LSwitch.cs
│ │ │ │ │ ├── LSwitch.cs.meta
│ │ │ │ │ ├── LTableView.cs
│ │ │ │ │ ├── LTableView.cs.meta
│ │ │ │ │ ├── LTouchView.cs
│ │ │ │ │ ├── LTouchView.cs.meta
│ │ │ │ │ ├── LogCollect.cs
│ │ │ │ │ └── LogCollect.cs.meta
│ │ │ │ ├── LWidget.meta
│ │ │ │ ├── LWindow/
│ │ │ │ │ ├── LWindowBase.cs
│ │ │ │ │ ├── LWindowBase.cs.meta
│ │ │ │ │ ├── LWindowManager.cs
│ │ │ │ │ └── LWindowManager.cs.meta
│ │ │ │ ├── LWindow.meta
│ │ │ │ ├── Net/
│ │ │ │ │ ├── Network.cs
│ │ │ │ │ ├── Network.cs.meta
│ │ │ │ │ ├── NetworkInterface.cs
│ │ │ │ │ ├── NetworkInterface.cs.meta
│ │ │ │ │ ├── Reactor.cs
│ │ │ │ │ ├── Reactor.cs.meta
│ │ │ │ │ ├── ServerProxy.cs
│ │ │ │ │ ├── ServerProxy.cs.meta
│ │ │ │ │ ├── TCPClientWorker.cs
│ │ │ │ │ └── TCPClientWorker.cs.meta
│ │ │ │ └── Net.meta
│ │ │ ├── Scripts.meta
│ │ │ ├── config.txt
│ │ │ └── config.txt.meta
│ │ └── Resources.meta
│ ├── Game.meta
│ ├── Plugins/
│ │ ├── Android/
│ │ │ ├── libs/
│ │ │ │ ├── armeabi-v7a/
│ │ │ │ │ └── libslua.so.meta
│ │ │ │ ├── armeabi-v7a.meta
│ │ │ │ ├── x86/
│ │ │ │ │ └── libslua.so.meta
│ │ │ │ └── x86.meta
│ │ │ └── libs.meta
│ │ ├── Android.meta
│ │ ├── ILeanTween.cs
│ │ ├── ILeanTween.cs.meta
│ │ ├── LTDescr.cs
│ │ ├── LTDescr.cs.meta
│ │ ├── LeanAudio.cs
│ │ ├── LeanAudio.cs.meta
│ │ ├── LeanTween.cs
│ │ ├── LeanTween.cs.meta
│ │ ├── Slua_Managed/
│ │ │ ├── ByteArray.cs
│ │ │ ├── ByteArray.cs.meta
│ │ │ ├── Coroutine.cs
│ │ │ ├── Coroutine.cs.meta
│ │ │ ├── Helper.cs
│ │ │ ├── Helper.cs.meta
│ │ │ ├── Logger.cs
│ │ │ ├── Logger.cs.meta
│ │ │ ├── Lua3rdDLL.cs
│ │ │ ├── Lua3rdDLL.cs.meta
│ │ │ ├── Lua3rdMeta.cs
│ │ │ ├── Lua3rdMeta.cs.meta
│ │ │ ├── LuaArray.cs
│ │ │ ├── LuaArray.cs.meta
│ │ │ ├── LuaByteArray.cs
│ │ │ ├── LuaByteArray.cs.meta
│ │ │ ├── LuaDLL.cs
│ │ │ ├── LuaDLL.cs.meta
│ │ │ ├── LuaDLLWrapper.cs
│ │ │ ├── LuaDLLWrapper.cs.meta
│ │ │ ├── LuaObject.cs
│ │ │ ├── LuaObject.cs.meta
│ │ │ ├── LuaObject_basetype.cs
│ │ │ ├── LuaObject_basetype.cs.meta
│ │ │ ├── LuaObject_overload.cs
│ │ │ ├── LuaObject_overload.cs.meta
│ │ │ ├── LuaState.cs
│ │ │ ├── LuaState.cs.meta
│ │ │ ├── LuaSvr.cs
│ │ │ ├── LuaSvr.cs.meta
│ │ │ ├── LuaSvrGameObject.cs
│ │ │ ├── LuaSvrGameObject.cs.meta
│ │ │ ├── LuaValueType.cs
│ │ │ ├── LuaValueType.cs.meta
│ │ │ ├── LuaVarObject.cs
│ │ │ ├── LuaVarObject.cs.meta
│ │ │ ├── ObjectCache.cs
│ │ │ ├── ObjectCache.cs.meta
│ │ │ ├── SLuaSetting.cs
│ │ │ ├── SLuaSetting.cs.meta
│ │ │ ├── Timer.cs
│ │ │ ├── Timer.cs.meta
│ │ │ ├── WeakDictionary.cs
│ │ │ └── WeakDictionary.cs.meta
│ │ ├── Slua_Managed.meta
│ │ ├── iOS/
│ │ │ ├── libslua.a
│ │ │ └── libslua.a.meta
│ │ ├── iOS.meta
│ │ ├── slua.bundle/
│ │ │ ├── Contents/
│ │ │ │ ├── Info.plist
│ │ │ │ ├── Info.plist.meta
│ │ │ │ ├── MacOS/
│ │ │ │ │ ├── slua
│ │ │ │ │ └── slua.meta
│ │ │ │ └── MacOS.meta
│ │ │ └── Contents.meta
│ │ ├── slua.bundle.meta
│ │ ├── x64/
│ │ │ ├── slua.dll.meta
│ │ │ └── slua.so.meta
│ │ ├── x64.meta
│ │ ├── x86/
│ │ │ ├── slua.dll.meta
│ │ │ └── slua.so.meta
│ │ └── x86.meta
│ ├── Plugins.meta
│ ├── README
│ ├── README.meta
│ ├── Slua/
│ │ ├── Editor/
│ │ │ ├── CustomEditor.cs
│ │ │ ├── CustomEditor.cs.meta
│ │ │ ├── CustomExport.cs
│ │ │ ├── CustomExport.cs.meta
│ │ │ ├── LuaCodeGen.cs
│ │ │ └── LuaCodeGen.cs.meta
│ │ ├── Editor.meta
│ │ ├── LuaObject.meta
│ │ ├── Resources/
│ │ │ ├── Particle System.prefab
│ │ │ ├── Particle System.prefab.meta
│ │ │ ├── circle/
│ │ │ │ ├── circle.txt
│ │ │ │ └── circle.txt.meta
│ │ │ ├── circle.meta
│ │ │ ├── custom.txt
│ │ │ ├── custom.txt.meta
│ │ │ ├── delegate.txt
│ │ │ ├── delegate.txt.meta
│ │ │ ├── lua3rdmeta.asset
│ │ │ ├── lua3rdmeta.asset.meta
│ │ │ ├── main.txt
│ │ │ ├── main.txt.meta
│ │ │ ├── module/
│ │ │ │ ├── some.txt
│ │ │ │ └── some.txt.meta
│ │ │ ├── module.meta
│ │ │ ├── new_coroutine.txt
│ │ │ ├── new_coroutine.txt.meta
│ │ │ ├── perf.txt
│ │ │ ├── perf.txt.meta
│ │ │ ├── setting.asset
│ │ │ ├── setting.asset.meta
│ │ │ ├── valuetype.txt
│ │ │ ├── valuetype.txt.meta
│ │ │ ├── varobj.txt
│ │ │ └── varobj.txt.meta
│ │ ├── Resources.meta
│ │ ├── Source/
│ │ │ ├── LuaThreadWrapper.cs
│ │ │ ├── LuaThreadWrapper.cs.meta
│ │ │ ├── UnityExtension.cs
│ │ │ └── UnityExtension.cs.meta
│ │ ├── Source.meta
│ │ ├── example/
│ │ │ ├── Circle.cs
│ │ │ ├── Circle.cs.meta
│ │ │ ├── Custom.cs
│ │ │ ├── Custom.cs.meta
│ │ │ ├── Deleg.cs
│ │ │ ├── Deleg.cs.meta
│ │ │ ├── HelloWorld.cs
│ │ │ ├── HelloWorld.cs.meta
│ │ │ ├── Main.cs
│ │ │ ├── Main.cs.meta
│ │ │ ├── NewCoroutine.cs
│ │ │ ├── NewCoroutine.cs.meta
│ │ │ ├── Perf.cs
│ │ │ ├── Perf.cs.meta
│ │ │ ├── ValueType.cs
│ │ │ ├── ValueType.cs.meta
│ │ │ ├── VarObj.cs
│ │ │ ├── VarObj.cs.meta
│ │ │ ├── circle.unity
│ │ │ ├── circle.unity.meta
│ │ │ ├── custom.unity
│ │ │ ├── custom.unity.meta
│ │ │ ├── delegate.unity
│ │ │ ├── delegate.unity.meta
│ │ │ ├── main.unity
│ │ │ ├── main.unity.meta
│ │ │ ├── new_coroutine.unity
│ │ │ ├── new_coroutine.unity.meta
│ │ │ ├── performance_test.unity
│ │ │ ├── performance_test.unity.meta
│ │ │ ├── test/
│ │ │ │ ├── README.md
│ │ │ │ ├── README.md.meta
│ │ │ │ ├── TestLua.cs
│ │ │ │ ├── TestLua.cs.meta
│ │ │ │ ├── test.cs
│ │ │ │ ├── test.cs.meta
│ │ │ │ ├── test.unity
│ │ │ │ └── test.unity.meta
│ │ │ ├── test.meta
│ │ │ ├── valuetype_test.unity
│ │ │ ├── valuetype_test.unity.meta
│ │ │ ├── varobj.unity
│ │ │ └── varobj.unity.meta
│ │ └── example.meta
│ ├── Slua.meta
│ ├── StreamingAssets/
│ │ └── StreamingAssets
│ └── StreamingAssets.meta
├── LICENSE
├── ProjectSettings/
│ ├── AudioManager.asset
│ ├── ClusterInputManager.asset
│ ├── DynamicsManager.asset
│ ├── EditorBuildSettings.asset
│ ├── EditorSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── NavMeshAreas.asset
│ ├── NetworkManager.asset
│ ├── Physics2DSettings.asset
│ ├── ProjectSettings.asset
│ ├── ProjectVersion.txt
│ ├── QualitySettings.asset
│ ├── TagManager.asset
│ ├── TimeManager.asset
│ ├── UnityAdsSettings.asset
│ └── UnityConnectSettings.asset
├── README.md
├── build/
│ ├── SConstruct
│ ├── lua-5.1.5/
│ │ ├── COPYRIGHT
│ │ ├── HISTORY
│ │ ├── INSTALL
│ │ ├── Makefile
│ │ ├── README
│ │ ├── doc/
│ │ │ ├── contents.html
│ │ │ ├── lua.1
│ │ │ ├── lua.css
│ │ │ ├── lua.html
│ │ │ ├── luac.1
│ │ │ ├── luac.html
│ │ │ ├── manual.css
│ │ │ ├── manual.html
│ │ │ └── readme.html
│ │ ├── etc/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── all.c
│ │ │ ├── lua.hpp
│ │ │ ├── lua.pc
│ │ │ ├── luavs.bat
│ │ │ ├── min.c
│ │ │ ├── noparser.c
│ │ │ └── strict.lua
│ │ ├── slua/
│ │ │ ├── slua/
│ │ │ │ └── Info.plist
│ │ │ └── slua.xcodeproj/
│ │ │ ├── project.pbxproj
│ │ │ ├── project.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcshareddata/
│ │ │ │ │ └── slua.xccheckout
│ │ │ │ └── xcuserdata/
│ │ │ │ └── sineysan.xcuserdatad/
│ │ │ │ ├── UserInterfaceState.xcuserstate
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ └── xcuserdata/
│ │ │ └── sineysan.xcuserdatad/
│ │ │ └── xcschemes/
│ │ │ ├── slua.xcscheme
│ │ │ └── xcschememanagement.plist
│ │ └── src/
│ │ ├── Makefile
│ │ ├── lapi.c
│ │ ├── lapi.h
│ │ ├── lauxlib.c
│ │ ├── lauxlib.h
│ │ ├── lbaselib.c
│ │ ├── lcode.c
│ │ ├── lcode.h
│ │ ├── ldblib.c
│ │ ├── ldebug.c
│ │ ├── ldebug.h
│ │ ├── ldo.c
│ │ ├── ldo.h
│ │ ├── ldump.c
│ │ ├── lfunc.c
│ │ ├── lfunc.h
│ │ ├── lgc.c
│ │ ├── lgc.h
│ │ ├── linit.c
│ │ ├── liolib.c
│ │ ├── llex.c
│ │ ├── llex.h
│ │ ├── llimits.h
│ │ ├── lmathlib.c
│ │ ├── lmem.c
│ │ ├── lmem.h
│ │ ├── loadlib.c
│ │ ├── lobject.c
│ │ ├── lobject.h
│ │ ├── lopcodes.c
│ │ ├── lopcodes.h
│ │ ├── loslib.c
│ │ ├── lparser.c
│ │ ├── lparser.h
│ │ ├── lstate.c
│ │ ├── lstate.h
│ │ ├── lstring.c
│ │ ├── lstring.h
│ │ ├── lstrlib.c
│ │ ├── ltable.c
│ │ ├── ltable.h
│ │ ├── ltablib.c
│ │ ├── ltm.c
│ │ ├── ltm.h
│ │ ├── lua.c
│ │ ├── lua.h
│ │ ├── luac.c
│ │ ├── luaconf.h
│ │ ├── lualib.h
│ │ ├── lundump.c
│ │ ├── lundump.h
│ │ ├── lvm.c
│ │ ├── lvm.h
│ │ ├── lzio.c
│ │ ├── lzio.h
│ │ └── print.c
│ ├── luajit-2.0.4/
│ │ ├── COPYRIGHT
│ │ ├── Makefile
│ │ ├── README
│ │ ├── doc/
│ │ │ ├── bluequad-print.css
│ │ │ ├── bluequad.css
│ │ │ ├── changes.html
│ │ │ ├── contact.html
│ │ │ ├── ext_c_api.html
│ │ │ ├── ext_ffi.html
│ │ │ ├── ext_ffi_api.html
│ │ │ ├── ext_ffi_semantics.html
│ │ │ ├── ext_ffi_tutorial.html
│ │ │ ├── ext_jit.html
│ │ │ ├── extensions.html
│ │ │ ├── faq.html
│ │ │ ├── install.html
│ │ │ ├── luajit.html
│ │ │ ├── running.html
│ │ │ └── status.html
│ │ ├── dynasm/
│ │ │ ├── dasm_arm.h
│ │ │ ├── dasm_arm.lua
│ │ │ ├── dasm_mips.h
│ │ │ ├── dasm_mips.lua
│ │ │ ├── dasm_ppc.h
│ │ │ ├── dasm_ppc.lua
│ │ │ ├── dasm_proto.h
│ │ │ ├── dasm_x64.lua
│ │ │ ├── dasm_x86.h
│ │ │ ├── dasm_x86.lua
│ │ │ └── dynasm.lua
│ │ ├── etc/
│ │ │ ├── luajit.1
│ │ │ └── luajit.pc
│ │ └── src/
│ │ ├── Makefile
│ │ ├── Makefile.dep
│ │ ├── host/
│ │ │ ├── README
│ │ │ ├── buildvm.c
│ │ │ ├── buildvm.h
│ │ │ ├── buildvm_asm.c
│ │ │ ├── buildvm_fold.c
│ │ │ ├── buildvm_lib.c
│ │ │ ├── buildvm_peobj.c
│ │ │ ├── genminilua.lua
│ │ │ └── minilua.c
│ │ ├── jit/
│ │ │ ├── bc.lua
│ │ │ ├── bcsave.lua
│ │ │ ├── dis_arm.lua
│ │ │ ├── dis_mips.lua
│ │ │ ├── dis_mipsel.lua
│ │ │ ├── dis_ppc.lua
│ │ │ ├── dis_x64.lua
│ │ │ ├── dis_x86.lua
│ │ │ ├── dump.lua
│ │ │ ├── v.lua
│ │ │ └── vmdef.lua
│ │ ├── lauxlib.h
│ │ ├── lib_aux.c
│ │ ├── lib_base.c
│ │ ├── lib_bit.c
│ │ ├── lib_debug.c
│ │ ├── lib_ffi.c
│ │ ├── lib_init.c
│ │ ├── lib_io.c
│ │ ├── lib_jit.c
│ │ ├── lib_math.c
│ │ ├── lib_os.c
│ │ ├── lib_package.c
│ │ ├── lib_string.c
│ │ ├── lib_table.c
│ │ ├── lj.supp
│ │ ├── lj_alloc.c
│ │ ├── lj_alloc.h
│ │ ├── lj_api.c
│ │ ├── lj_arch.h
│ │ ├── lj_asm.c
│ │ ├── lj_asm.h
│ │ ├── lj_asm_arm.h
│ │ ├── lj_asm_mips.h
│ │ ├── lj_asm_ppc.h
│ │ ├── lj_asm_x86.h
│ │ ├── lj_bc.c
│ │ ├── lj_bc.h
│ │ ├── lj_bcdump.h
│ │ ├── lj_bcread.c
│ │ ├── lj_bcwrite.c
│ │ ├── lj_carith.c
│ │ ├── lj_carith.h
│ │ ├── lj_ccall.c
│ │ ├── lj_ccall.h
│ │ ├── lj_ccallback.c
│ │ ├── lj_ccallback.h
│ │ ├── lj_cconv.c
│ │ ├── lj_cconv.h
│ │ ├── lj_cdata.c
│ │ ├── lj_cdata.h
│ │ ├── lj_char.c
│ │ ├── lj_char.h
│ │ ├── lj_clib.c
│ │ ├── lj_clib.h
│ │ ├── lj_cparse.c
│ │ ├── lj_cparse.h
│ │ ├── lj_crecord.c
│ │ ├── lj_crecord.h
│ │ ├── lj_ctype.c
│ │ ├── lj_ctype.h
│ │ ├── lj_debug.c
│ │ ├── lj_debug.h
│ │ ├── lj_def.h
│ │ ├── lj_dispatch.c
│ │ ├── lj_dispatch.h
│ │ ├── lj_emit_arm.h
│ │ ├── lj_emit_mips.h
│ │ ├── lj_emit_ppc.h
│ │ ├── lj_emit_x86.h
│ │ ├── lj_err.c
│ │ ├── lj_err.h
│ │ ├── lj_errmsg.h
│ │ ├── lj_ff.h
│ │ ├── lj_ffrecord.c
│ │ ├── lj_ffrecord.h
│ │ ├── lj_frame.h
│ │ ├── lj_func.c
│ │ ├── lj_func.h
│ │ ├── lj_gc.c
│ │ ├── lj_gc.h
│ │ ├── lj_gdbjit.c
│ │ ├── lj_gdbjit.h
│ │ ├── lj_ir.c
│ │ ├── lj_ir.h
│ │ ├── lj_ircall.h
│ │ ├── lj_iropt.h
│ │ ├── lj_jit.h
│ │ ├── lj_lex.c
│ │ ├── lj_lex.h
│ │ ├── lj_lib.c
│ │ ├── lj_lib.h
│ │ ├── lj_load.c
│ │ ├── lj_mcode.c
│ │ ├── lj_mcode.h
│ │ ├── lj_meta.c
│ │ ├── lj_meta.h
│ │ ├── lj_obj.c
│ │ ├── lj_obj.h
│ │ ├── lj_opt_dce.c
│ │ ├── lj_opt_fold.c
│ │ ├── lj_opt_loop.c
│ │ ├── lj_opt_mem.c
│ │ ├── lj_opt_narrow.c
│ │ ├── lj_opt_sink.c
│ │ ├── lj_opt_split.c
│ │ ├── lj_parse.c
│ │ ├── lj_parse.h
│ │ ├── lj_record.c
│ │ ├── lj_record.h
│ │ ├── lj_snap.c
│ │ ├── lj_snap.h
│ │ ├── lj_state.c
│ │ ├── lj_state.h
│ │ ├── lj_str.c
│ │ ├── lj_str.h
│ │ ├── lj_strscan.c
│ │ ├── lj_strscan.h
│ │ ├── lj_tab.c
│ │ ├── lj_tab.h
│ │ ├── lj_target.h
│ │ ├── lj_target_arm.h
│ │ ├── lj_target_mips.h
│ │ ├── lj_target_ppc.h
│ │ ├── lj_target_x86.h
│ │ ├── lj_trace.c
│ │ ├── lj_trace.h
│ │ ├── lj_traceerr.h
│ │ ├── lj_udata.c
│ │ ├── lj_udata.h
│ │ ├── lj_vm.h
│ │ ├── lj_vmevent.c
│ │ ├── lj_vmevent.h
│ │ ├── lj_vmmath.c
│ │ ├── ljamalg.c
│ │ ├── lua.h
│ │ ├── lua.hpp
│ │ ├── luaconf.h
│ │ ├── luajit.c
│ │ ├── luajit.h
│ │ ├── lualib.h
│ │ ├── msvcbuild.bat
│ │ ├── ps4build.bat
│ │ ├── psvitabuild.bat
│ │ ├── slua.c
│ │ ├── vm_arm.dasc
│ │ ├── vm_mips.dasc
│ │ ├── vm_ppc.dasc
│ │ ├── vm_ppcspe.dasc
│ │ ├── vm_x86.dasc
│ │ └── xedkbuild.bat
│ ├── luajit-2.1.0/
│ │ ├── COPYRIGHT
│ │ ├── Makefile
│ │ ├── README
│ │ ├── doc/
│ │ │ ├── bluequad-print.css
│ │ │ ├── bluequad.css
│ │ │ ├── changes.html
│ │ │ ├── contact.html
│ │ │ ├── ext_c_api.html
│ │ │ ├── ext_ffi.html
│ │ │ ├── ext_ffi_api.html
│ │ │ ├── ext_ffi_semantics.html
│ │ │ ├── ext_ffi_tutorial.html
│ │ │ ├── ext_jit.html
│ │ │ ├── ext_profiler.html
│ │ │ ├── extensions.html
│ │ │ ├── faq.html
│ │ │ ├── install.html
│ │ │ ├── luajit.html
│ │ │ ├── running.html
│ │ │ └── status.html
│ │ ├── dynasm/
│ │ │ ├── dasm_arm.h
│ │ │ ├── dasm_arm.lua
│ │ │ ├── dasm_arm64.h
│ │ │ ├── dasm_arm64.lua
│ │ │ ├── dasm_mips.h
│ │ │ ├── dasm_mips.lua
│ │ │ ├── dasm_ppc.h
│ │ │ ├── dasm_ppc.lua
│ │ │ ├── dasm_proto.h
│ │ │ ├── dasm_x64.lua
│ │ │ ├── dasm_x86.h
│ │ │ ├── dasm_x86.lua
│ │ │ └── dynasm.lua
│ │ ├── etc/
│ │ │ ├── luajit.1
│ │ │ └── luajit.pc
│ │ └── src/
│ │ ├── Makefile
│ │ ├── Makefile.dep
│ │ ├── host/
│ │ │ ├── README
│ │ │ ├── buildvm.c
│ │ │ ├── buildvm.h
│ │ │ ├── buildvm_asm.c
│ │ │ ├── buildvm_fold.c
│ │ │ ├── buildvm_lib.c
│ │ │ ├── buildvm_libbc.h
│ │ │ ├── buildvm_peobj.c
│ │ │ ├── genlibbc.lua
│ │ │ ├── genminilua.lua
│ │ │ └── minilua.c
│ │ ├── jit/
│ │ │ ├── bc.lua
│ │ │ ├── bcsave.lua
│ │ │ ├── dis_arm.lua
│ │ │ ├── dis_mips.lua
│ │ │ ├── dis_mipsel.lua
│ │ │ ├── dis_ppc.lua
│ │ │ ├── dis_x64.lua
│ │ │ ├── dis_x86.lua
│ │ │ ├── dump.lua
│ │ │ ├── p.lua
│ │ │ ├── v.lua
│ │ │ └── zone.lua
│ │ ├── lauxlib.h
│ │ ├── lib_aux.c
│ │ ├── lib_base.c
│ │ ├── lib_bit.c
│ │ ├── lib_debug.c
│ │ ├── lib_ffi.c
│ │ ├── lib_init.c
│ │ ├── lib_io.c
│ │ ├── lib_jit.c
│ │ ├── lib_math.c
│ │ ├── lib_os.c
│ │ ├── lib_package.c
│ │ ├── lib_string.c
│ │ ├── lib_table.c
│ │ ├── lj.supp
│ │ ├── lj_alloc.c
│ │ ├── lj_alloc.h
│ │ ├── lj_api.c
│ │ ├── lj_arch.h
│ │ ├── lj_asm.c
│ │ ├── lj_asm.h
│ │ ├── lj_asm_arm.h
│ │ ├── lj_asm_mips.h
│ │ ├── lj_asm_ppc.h
│ │ ├── lj_asm_x86.h
│ │ ├── lj_bc.c
│ │ ├── lj_bc.h
│ │ ├── lj_bcdump.h
│ │ ├── lj_bcread.c
│ │ ├── lj_bcwrite.c
│ │ ├── lj_buf.c
│ │ ├── lj_buf.h
│ │ ├── lj_carith.c
│ │ ├── lj_carith.h
│ │ ├── lj_ccall.c
│ │ ├── lj_ccall.h
│ │ ├── lj_ccallback.c
│ │ ├── lj_ccallback.h
│ │ ├── lj_cconv.c
│ │ ├── lj_cconv.h
│ │ ├── lj_cdata.c
│ │ ├── lj_cdata.h
│ │ ├── lj_char.c
│ │ ├── lj_char.h
│ │ ├── lj_clib.c
│ │ ├── lj_clib.h
│ │ ├── lj_cparse.c
│ │ ├── lj_cparse.h
│ │ ├── lj_crecord.c
│ │ ├── lj_crecord.h
│ │ ├── lj_ctype.c
│ │ ├── lj_ctype.h
│ │ ├── lj_debug.c
│ │ ├── lj_debug.h
│ │ ├── lj_def.h
│ │ ├── lj_dispatch.c
│ │ ├── lj_dispatch.h
│ │ ├── lj_emit_arm.h
│ │ ├── lj_emit_mips.h
│ │ ├── lj_emit_ppc.h
│ │ ├── lj_emit_x86.h
│ │ ├── lj_err.c
│ │ ├── lj_err.h
│ │ ├── lj_errmsg.h
│ │ ├── lj_ff.h
│ │ ├── lj_ffrecord.c
│ │ ├── lj_ffrecord.h
│ │ ├── lj_frame.h
│ │ ├── lj_func.c
│ │ ├── lj_func.h
│ │ ├── lj_gc.c
│ │ ├── lj_gc.h
│ │ ├── lj_gdbjit.c
│ │ ├── lj_gdbjit.h
│ │ ├── lj_ir.c
│ │ ├── lj_ir.h
│ │ ├── lj_ircall.h
│ │ ├── lj_iropt.h
│ │ ├── lj_jit.h
│ │ ├── lj_lex.c
│ │ ├── lj_lex.h
│ │ ├── lj_lib.c
│ │ ├── lj_lib.h
│ │ ├── lj_load.c
│ │ ├── lj_mcode.c
│ │ ├── lj_mcode.h
│ │ ├── lj_meta.c
│ │ ├── lj_meta.h
│ │ ├── lj_obj.c
│ │ ├── lj_obj.h
│ │ ├── lj_opt_dce.c
│ │ ├── lj_opt_fold.c
│ │ ├── lj_opt_loop.c
│ │ ├── lj_opt_mem.c
│ │ ├── lj_opt_narrow.c
│ │ ├── lj_opt_sink.c
│ │ ├── lj_opt_split.c
│ │ ├── lj_parse.c
│ │ ├── lj_parse.h
│ │ ├── lj_profile.c
│ │ ├── lj_profile.h
│ │ ├── lj_record.c
│ │ ├── lj_record.h
│ │ ├── lj_snap.c
│ │ ├── lj_snap.h
│ │ ├── lj_state.c
│ │ ├── lj_state.h
│ │ ├── lj_str.c
│ │ ├── lj_str.h
│ │ ├── lj_strfmt.c
│ │ ├── lj_strfmt.h
│ │ ├── lj_strscan.c
│ │ ├── lj_strscan.h
│ │ ├── lj_tab.c
│ │ ├── lj_tab.h
│ │ ├── lj_target.h
│ │ ├── lj_target_arm.h
│ │ ├── lj_target_arm64.h
│ │ ├── lj_target_mips.h
│ │ ├── lj_target_ppc.h
│ │ ├── lj_target_x86.h
│ │ ├── lj_trace.c
│ │ ├── lj_trace.h
│ │ ├── lj_traceerr.h
│ │ ├── lj_udata.c
│ │ ├── lj_udata.h
│ │ ├── lj_vm.h
│ │ ├── lj_vmevent.c
│ │ ├── lj_vmevent.h
│ │ ├── lj_vmmath.c
│ │ ├── ljamalg.c
│ │ ├── lua.h
│ │ ├── lua.hpp
│ │ ├── luaconf.h
│ │ ├── luajit.c
│ │ ├── luajit.h
│ │ ├── lualib.h
│ │ ├── msvcbuild.bat
│ │ ├── ps4build.bat
│ │ ├── psvitabuild.bat
│ │ ├── vm_arm.dasc
│ │ ├── vm_arm64.dasc
│ │ ├── vm_mips.dasc
│ │ ├── vm_ppc.dasc
│ │ ├── vm_x64.dasc
│ │ ├── vm_x86.dasc
│ │ ├── xb1build.bat
│ │ └── xedkbuild.bat
│ ├── luajit-osx/
│ │ ├── slua/
│ │ │ ├── Info.plist
│ │ │ └── main.c
│ │ └── slua.xcodeproj/
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata/
│ │ │ │ └── slua.xccheckout
│ │ │ └── xcuserdata/
│ │ │ ├── sineysan.xcuserdatad/
│ │ │ │ ├── UserInterfaceState.xcuserstate
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ │ └── yongkangchen.xcuserdatad/
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata/
│ │ └── yongkangchen.xcuserdatad/
│ │ └── xcschemes/
│ │ ├── slua.xcscheme
│ │ └── xcschememanagement.plist
│ ├── make_android.sh
│ ├── make_ios.sh
│ ├── make_osx.sh
│ ├── make_osx_jit.sh
│ ├── make_win_with_2013.bat
│ └── slua.c
├── classes.dex
├── classes.jar
├── debugger/
│ ├── README.txt
│ └── mac/
│ ├── ldb
│ └── runldb.sh
├── uLui.CSharp.Editor.csproj
├── uLui.CSharp.Plugins.csproj
├── uLui.CSharp.csproj
├── uLui.Editor.csproj
├── uLui.Plugins.csproj
└── uLui.csproj
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.sln
*.userprefs
*.pidb
*.svd
*.suo
*.user
*.booproj
Assets/data.zip
Assets/version.ver
Assets/Slua/LuaObject/*
Assets/StreamingAssets/*.ab
Assets/StreamingAssets/*.manifest
Assets/StreamingAssets/*.meta
/Library
/Library/FailedAssetImports.txt
/Library/cache/
/Library/previews/
/Library/ScriptAssemblies
/obj
/Temp
.DS_Store
.DS_Store?
ehthumbs.db
Thumbs.db
*.swp
*.Trashes
ExportedObj/
Temp/
*~
/Assembly-CSharp.csproj
/Assembly-CSharp-vs.csproj
================================================
FILE: Assembly-CSharp-Editor.csproj
================================================
Debug
AnyCPU
10.0.20506
2.0
{491050FB-DB9F-41A2-4FA7-0F02E64E726C}
Library
Properties
Assembly-CSharp-Editor
v3.5
512
Assets
true
full
false
Temp\bin\Debug\
DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_5_6_0;UNITY_5_6;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;ENABLE_VIDEO;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;CROSS_PLATFORM_INPUT
prompt
4
0169
pdbonly
true
Temp\bin\Release\
prompt
4
0169
D:/Unity5.6/Editor/Data/Managed/UnityEngine.dll
D:/Unity5.6/Editor/Data/Managed/UnityEditor.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/Advertisements/Editor/UnityEditor.Advertisements.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/GUISystem/Editor/UnityEditor.UI.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/Networking/Editor/UnityEditor.Networking.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/TestRunner/Editor/UnityEditor.TestRunner.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/TestRunner/UnityEngine.TestRunner.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/TestRunner/nunit.framework.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/TreeEditor/Editor/UnityEditor.TreeEditor.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityAnalytics/UnityEngine.Analytics.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityAnalytics/Editor/UnityEditor.Analytics.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityHoloLens/Editor/UnityEditor.HoloLens.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityPurchasing/Editor/UnityEditor.Purchasing.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityVR/RuntimeEditor/UnityEngine.VR.dll
D:/Unity5.6/Editor/Data/Managed/UnityEditor.Graphs.dll
D:/Unity5.6/Editor/Data/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll
D:/Unity5.6/Editor/Data/PlaybackEngines/windowsstandalonesupport/UnityEditor.WindowsStandalone.Extensions.dll
{E1D36826-B1F4-0A49-5C98-A82920DD91E8} Assembly-CSharp-firstpass
{637C5E20-0C4C-D436-F010-B1A7A7E1ED5A} Assembly-CSharp
================================================
FILE: Assembly-CSharp-firstpass.csproj
================================================
Debug
AnyCPU
10.0.20506
2.0
{E1D36826-B1F4-0A49-5C98-A82920DD91E8}
Library
Properties
Assembly-CSharp-firstpass
v3.5
512
Assets
true
full
false
Temp\bin\Debug\
DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_5_6_0;UNITY_5_6;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;ENABLE_VIDEO;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;CROSS_PLATFORM_INPUT
prompt
4
0169
pdbonly
true
Temp\bin\Release\
prompt
4
0169
D:/Unity5.6/Editor/Data/Managed/UnityEngine.dll
D:/Unity5.6/Editor/Data/Managed/UnityEditor.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/TestRunner/UnityEngine.TestRunner.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/TestRunner/nunit.framework.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityAnalytics/UnityEngine.Analytics.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll
D:/Unity5.6/Editor/Data/UnityExtensions/Unity/UnityVR/RuntimeEditor/UnityEngine.VR.dll
================================================
FILE: Assets/Game/@Lua/Base/LClass.lua
================================================
local LDeclare = require "Base/LGlobal"
local L_VERSION = require "Base/LVersion"
-- The hold all class type.
local __LClassTypeList = {}
-- The inherit class function.
local function __LClass(TypeName, SuperType)
-- Create new class type.
local ClassType = {}
-- Set class type property.
ClassType.TypeName = TypeName
ClassType.SuperType = SuperType
ClassType.ctor = false
ClassType.dtor = false
-- The new alloc function of this class.
ClassType.new = function (...)
-- Create a new object first and set metatable.
local Obj = {}
-- Give a tostring method.
Obj.ToString = function (self)
if not self.__InstanceName then
local str = tostring(self)
local _, _, addr = string.find(str, "table%s*:%s*(0?[xX]?%x+)")
self.__InstanceName = ClassType.TypeName .. ":" .. addr
end
return self.__InstanceName
end
-- Get class type name.
Obj.GetType = function (self)
return ClassType.TypeName
end
-- Do constructor recursively.
local CreateObj = function (Class, Object, ...)
local Create
Create = function (c, ...)
if c.SuperType then
Create(c.SuperType, ...)
end
if c.ctor then
c.ctor(Object, ...)
end
end
Create(Class, ...)
end
-- Do destructor recursively.
local ReleaseObj = function (Class, Object)
local Release
Release = function (c)
if c.dtor then
c.dtor(Object)
end
if c.SuperType then
Release(c.SuperType)
end
end
Release(Class)
end
-- Do the destructor by lua version.
if L_VERSION < L_VERSION_520 then
-- Create a empty userdata with empty metatable.
-- And mark gc method for destructor.
local Proxy = newproxy(true)
getmetatable(Proxy).__gc = function (o)
ReleaseObj(ClassType, Obj)
end
-- Hold the one and only reference to the proxy userdata.
Obj.__gc = Proxy
-- Set metatable.
setmetatable(Obj, {__index = __LClassTypeList[ClassType]})
else
-- Directly set __gc field of the metatable for destructor of this object.
setmetatable(Obj,
{
__index = __LClassTypeList[ClassType],
__gc = function (o)
ReleaseObj(ClassType, o)
end
})
end
-- Do constructor for this object.
CreateObj(ClassType, Obj, ...)
return Obj
end
-- Give a ToString method.
ClassType.ToString = function (self)
return self.TypeName
end
-- The super class type of this class.
if SuperType then
ClassType.super = setmetatable({},
{
__index = function (t, k)
local Func = __LClassTypeList[SuperType][k]
if "function" == type(Func) then
t[k] = Func
return Func
else
error("Accessing super class field are not allowed!")
end
end
})
end
-- Virtual table.
local Vtbl = {}
__LClassTypeList[ClassType] = Vtbl
-- Set index and new index of ClassType, and provide a default create method.
setmetatable(ClassType,
{
__index = function (t, k)
return Vtbl[k]
end,
__newindex = function (t, k, v)
Vtbl[k] = v
end,
__call = function (self, ...)
return ClassType.new(...)
end
})
-- To copy super class things that this class not have.
if SuperType then
setmetatable(Vtbl,
{
__index = function (t, k)
local Ret = __LClassTypeList[SuperType][k]
Vtbl[k] = Ret
return Ret
end
})
end
return ClassType
end
-- Set into global.
if (not LIsDeclared("LClass")) or (not LClass) then
LDeclare("LClass", __LClass)
end
-- Return this.
return __LClass
================================================
FILE: Assets/Game/@Lua/Base/LClass.lua.meta
================================================
fileFormatVersion: 2
guid: 6a6a6fdea17b444c2b029fac5aad800e
timeCreated: 1462415445
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Base/LGlobal.lua
================================================
--
-- Lua global definition file.
--
-- @filename LGlobal.lua
-- The declared global name.
local DeclaredNames = {}
-- The internal global variable table check method.
local function __inner_declare(Name, InitValue)
if not rawget(_G, Name) then
rawset(_G, Name, InitValue or false)
else
error("You have already declared global : " .. Name, 2)
end
DeclaredNames[Name] = true
return _G[Name]
end
-- The internal global variable table index method.
local function __inner_declare_index(t, k)
if not DeclaredNames[k] then
error("Attempt to access an undeclared global variable : " .. k, 2)
end
return nil
end
local ignore_global = {protobuf=true}
-- The internal global variable table newindex method.
local function __inner_declare_newindex(t, k, v)
if (not DeclaredNames[k]) and (ignore_global[k] == nil) then
error("Attempt to write an undeclared global variable : " .. k, 2)
else
rawset(t, k, v)
end
end
-- The global variable declare function.
local function __Declare(Name, InitValue)
local ok, res = pcall(__inner_declare, Name, InitValue)
if not ok then
print(debug.traceback(res, 2))
return nil
else
return res
end
end
-- Check if a global variable is declared.
local function __IsDeclared(Name)
if DeclaredNames[Name] or rawget(_G, Name) then
return true
else
return false
end
end
-- Set "Declare" into global.
if (not __IsDeclared("LDeclare")) or (not LDeclare) then
__Declare("LDeclare", __Declare)
end
-- Set "IsDeclared" into global.
if (not __IsDeclared("LIsDeclared")) or (not LIsDeclared) then
__Declare("LIsDeclared", __IsDeclared)
end
-- Set limit to define global variables.
setmetatable(_G,
{
__index = function (t, k)
local ok, res = pcall(__inner_declare_index, t, k)
if not ok then
print(debug.traceback(res, 2))
end
return nil
end,
__newindex = function (t, k, v)
local ok, res = pcall(__inner_declare_newindex, t, k, v)
if not ok then
print(debug.traceback(res, 2))
end
end
})
-- Return this.
return __Declare
================================================
FILE: Assets/Game/@Lua/Base/LGlobal.lua.meta
================================================
fileFormatVersion: 2
guid: 58057dc8c9be442b79b1538261f96691
timeCreated: 1462415445
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Base/LMessage.lua
================================================
-- 通用事件派发器 static class
--[[
eg: LMessage:addEvent(
"eventName",
function(data)
print(data[1], data[2], data[3]) --1, 2, 3
end
)
LMessage:dispatchEvent("eventName", {1, 2, 3})
]]
LEventData = LDeclare("LEventData", LClass("LEventData"))
LEventData.name = ""
LEventData.listener = nil
LEventData.target = nil
function LEventData:create()
return LEventData.new()
end
LMessage = LDeclare("LMessage", LClass("LMessage"))
LMessage._eventDict = {}
--[[
注册事件
@param eventName 事件名
@param listener 回调函数
@param target 注册者(类似使用target:listener())
]]
function LMessage:addEvent(eventName, listener, target)
assert(type(eventName) == "string" or eventName ~= "", "invalid event name")
if not listener then
return
end
local listeners = LMessage._eventDict[eventName] or {}
LMessage._eventDict[eventName] = listeners
for _, v in ipairs(listeners) do
if v.listener == listener then
return
end
end
local event = LEventData:create()
event.listener = listener
event.name = eventName
event.target = target
table.insert(listeners, event)
end
function LMessage:removeEvent(eventName, listener)
local listeners = LMessage._eventDict[eventName]
if not listeners then
return
end
-- local event
-- local i = 1
-- while i < #listeners do
-- if event.listener == listener then
-- table.remove(listeners, i)
-- break
-- end
-- end
for i, event in ipairs(listeners) do
if event.listener == listener then
table.remove(listeners, i)
break
end
end
end
function LMessage:dispatchEvent(eventName, data)
local listeners = LMessage._eventDict[eventName]
if not listeners then
return
end
for _, v in ipairs(listeners) do
local callback = v.listener
if v.target then
callback(v.target, data)
else
callback(data)
end
end
end
function LMessage:removeAllEvent(eventName)
LMessage._eventDict[eventName] = nil
end
function LMessage:hasEvent(eventName, listener)
local listeners = LMessage._eventDict[eventName]
if not listeners then
return false
end
for _, event in ipairs(listeners) do
if event.listener == listener then
return true
end
end
return false
end
================================================
FILE: Assets/Game/@Lua/Base/LMessage.lua.meta
================================================
fileFormatVersion: 2
guid: 7f77f5b899c594fe0a121e7b58246c93
timeCreated: 1462415445
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Base/LVersion.lua
================================================
--
-- Lua version parse file.
--
-- @filename Version.lua
-- Get global declare.
local LDeclare = require "Base/LGlobal"
-- Get current version number.
local _, _, majorv, minorv, rev = string.find(_VERSION, "(%d).(%d)[.]?([%d]?)")
local VersionNumber = tonumber(majorv) * 100 + tonumber(minorv) * 10 + (((string.len(rev) == 0) and 0) or tonumber(rev))
-- Declare current version number.
LDeclare("L_VERSION", VersionNumber)
-- Declare lua history version number.
LDeclare("L_VERSION_510", 510)
LDeclare("L_VERSION_520", 520)
LDeclare("L_VERSION_530", 530)
return L_VERSION
================================================
FILE: Assets/Game/@Lua/Base/LVersion.lua.meta
================================================
fileFormatVersion: 2
guid: e6df6eb1d202744a29816e09916a7fb1
timeCreated: 1462415445
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Base.meta
================================================
fileFormatVersion: 2
guid: 605851e052326450ab145e03567794ac
folderAsset: yes
timeCreated: 1462415445
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Common/EventNames.lua
================================================
-- 事件
local EventNames = {}
EventNames.CHARACTOR_HP = "EventNames.CHARACTOR_HP"
EventNames.STATUS_STATE = "EventNames.STATUS_STATE"
EventNames.GAME_STATE = "EventNames.GAME_STATE"
EventNames.MSG_PROTO = "EventNames.MSG_PROTO"
EventNames.NET_CONNECT = "EventNames.NET_CONNECT"
EventNames.NET_DISCONNECT = "EventNames.NET_DISCONNECT"
EventNames.BATTLE_PLAYER_CHANGE = "EventNames.BATTLE_PLAYER_CHANGE"
EventNames.BATTLE_CAMERA_MOVE = "EventNames.BATTLE_CAMERA_MOVE"
EventNames.BATTLE_PLAYER_MOVE = "EventNames.BATTLE_PLAYER_MOVE"
EventNames.BATTLE_PLAYER_ATTACK = "EventNames.BATTLE_PLAYER_ATTACK"
EventNames.BATTLE_PLAYER_RELOAD = "EventNames.BATTLE_PLAYER_RELOAD"
EventNames.BATTLE_ENEMY_HURT = "EventNames.BATTLE_ENEMY_HURT"
EventNames.BATTLE_ENEMY_DIE = "EventNames.BATTLE_ENEMY_DIE"
EventNames.BATTLE_ENEMY_NUM = "EventNames.BATTLE_ENEMY_NUM"
EventNames.BATTLE_ENEMY_HEADSHOT = "EventNames.BATTLE_ENEMY_HEADSHOT"
EventNames.BATTLE_ENEMY_CREATE = "EventNames.BATTLE_ENEMY_CREATE"
EventNames.BATTLE_PLAYER_HP = "EventNames.BATTLE_PLAYER_HP"
EventNames.BATTLE_CHARACTOR_DIE = "EventNames.BATTLE_CHARACTOR_DIE"
EventNames.BATTLE_WEAPON_AIM = "EventNames.BATTLE_WEAPON_AIM"
EventNames.BATTLE_WEAPON_SHELL = "EventNames.BATTLE_WEAPON_SHELL"
EventNames.BATTLE_SHOW_SHELL = "EventNames.BATTLE_SHOW_SHELL"
EventNames.BATTLE_MAINUI_ENEMYNUM = "EventNames.BATTLE_MAINUI_ENEMYNUM"
EventNames.BATTLE_RESULT = "EventNames.BATTLE_RESULT"
LDeclare("EventNames", EventNames)
return EventNames
================================================
FILE: Assets/Game/@Lua/Game/Common/EventNames.lua.meta
================================================
fileFormatVersion: 2
guid: c5a4821ebe5123f4eba8af7e62ce46f5
timeCreated: 1470564833
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Common/MsgId.lua
================================================
local MsgId = {}
MsgId.hello = 1;
MsgId.registerApp = 2;
MsgId.broadcastApp = 3;
MsgId.updateApp = 4;
MsgId.webAppCmd = 1000;
MsgId.adminAppCmd = 1001;
LDeclare("MsgId", MsgId)
return MsgId
================================================
FILE: Assets/Game/@Lua/Game/Common/MsgId.lua.meta
================================================
fileFormatVersion: 2
guid: 24d1a143c37794c4ab1439e8cfbb95b7
timeCreated: 1470562462
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Common/NetworkManager.lua
================================================
-- 网络管理
local NetworkManager = LDeclare("NetworkManager", LClass("NetworkManager"))
NetworkManager._instance = nil
NetworkManager._netWork = nil
function NetworkManager:GetInstance()
if NetworkManager._instance == nil then
NetworkManager._instance = NetworkManager()
NetworkManager._instance:init()
end
return NetworkManager._instance
end
function NetworkManager:init()
require "Lib/protobuf/protobuf"
-- self.ip = "192.168.1.39"
-- self.port = 20096
self.ip = "localhost"
self.port = 9001
self._netWork = Network.GetInstance()
self._netWork.onConnect = function(isConn)
print("onConnect:" , isConn);
self.isConn = isConn
-- local component_hello = {
-- appId = 123,
-- appType = 12345,
-- groupId = 15615
-- }
-- self:send(MsgId.hello,component_hello)
LMessage:dispatchEvent(EventNames.NET_CONNECT,isConn)
end
self._netWork.onHandleMessage = function(msgId,packet)
print("onHandleMessage")
local decode = protobuf.decode(string.format("component.component_%s",self.msgIdsName[msgId]),packet)
LMessage:dispatchEvent(EventNames.MSG_PROTO,{id=msgId,obj=decode})
end
self._netWork.onDisconnect = function()
print("onDisconnect")
self.isConn = false
LMessage:dispatchEvent(EventNames.NET_DISCONNECT)
end
self:proto()
self._netWork:connect(self.ip, self.port);
end
function NetworkManager:proto()
self.msgIdsName = {}
for name,id in pairs(MsgId) do
self.msgIdsName[id] = name
end
self.protoFile = "masterd"
local buffer = self._netWork:GetProtoBytes(self.protoFile)
protobuf.register(buffer)
end
function NetworkManager:send(msgId,protoObj)
if self._netWork:valid() and self.isConn then
local code = protobuf.encode(string.format("component.component_%s",self.msgIdsName[msgId]),protoObj)
self._netWork:send(msgId,code)
end
end
return NetworkManager
================================================
FILE: Assets/Game/@Lua/Game/Common/NetworkManager.lua.meta
================================================
fileFormatVersion: 2
guid: a31fce2e14bc9c545ae091b69ab912d0
timeCreated: 1470562129
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Common/Util.lua
================================================
local Util = {}
-- 清空子节点
Util.removeAllChild = function(gameObject)
local len = gameObject.transform.childCount
local obj = nil
for i=0,len-1 do
obj = gameObject.transform:GetChild(i).gameObject
Object.Destroy(obj)
end
end
-- 切割字符串
Util.split = function(s, p)
local rt= {}
string.gsub(s, '[^'..p..']+', function(w) table.insert(rt, w) end )
return rt
end
-- 用标签获取组件参数
Util.GetComponentWithFlag = function(obj,flag,otype)
if obj == nil then return end
local links = obj:GetComponents(Link)
for v in Slua.iter(links) do
if v.flag == flag then
if otype then
return v.target:GetComponent(otype)
end
return v.target
end
end
return nil
end
Util.FindComponentFlag = function(obj,str)
local links = obj:GetComponents(Link)
for v in Slua.iter(links) do
local a,b = string.find(v.flag,str)
if a ~=nil and b ~=nil then
return string.sub(v.flag,b+1)
end
end
return nil
end
Util.AnimatorIsPlaying = function(animator,name)
local ret = false
if name then
local stateInfo = animator:GetCurrentAnimatorStateInfo(0);
if stateInfo:IsName("Base Layer.".. name) and stateInfo.normalizedTime < 1 then
ret = true
end
end
return ret
end
LDeclare("Util", Util)
return Util
================================================
FILE: Assets/Game/@Lua/Game/Common/Util.lua.meta
================================================
fileFormatVersion: 2
guid: abe1c3fb2a5fd79489c65338eef894e9
timeCreated: 1470562129
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Common/i18n.lua
================================================
local i18n = {}
--# main.lua
i18n["1001"] = "初始化游戏"
i18n["1002"] = "初始化需要一点点时间(%d/100)"
LDeclare("i18n", i18n)
return i18n
================================================
FILE: Assets/Game/@Lua/Game/Common/i18n.lua.meta
================================================
fileFormatVersion: 2
guid: 92cbb1004d9363c4e9be2a66ae20d256
timeCreated: 1480475203
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Common.meta
================================================
fileFormatVersion: 2
guid: 0ed788816d573da438a8f44208f496c8
folderAsset: yes
timeCreated: 1470562129
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/MsgBox.lua
================================================
-- 消息窗
local MsgBox = LDeclare("MsgBox", LClass("MsgBox"))
function MsgBox:Start()
print("MsgBox Start")
self.btn_close = self.gameObject.transform:Find("btn_close"):GetComponent(Button)
self.btn_close.onClick:AddListener(function()
self.gameObject:GetComponent(Image).sprite = nil
LWindowManager.GetInstance():popWindow("Prefabs/MsgBox.prefab")
end)
end
function MsgBox:OnDestroy()
LLoadBundle.GetInstance():UnloadBundles({
"atlas-face_png.ab",
"scenes-first_unity.ab",
"prefabs-msgbox_prefab.ab"})
end
return MsgBox
================================================
FILE: Assets/Game/@Lua/Game/MsgBox.lua.meta
================================================
fileFormatVersion: 2
guid: 6ef219370e84c734cacd4bdc6d2d217e
timeCreated: 1471161314
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Proto/masterd.bytes
================================================
masterd.proto component"B
component_hello
appId (
appType (
groupId (
"
component_broadcastApp
id (
type (
state (
internaladdr (
internalport (
externaladdr (
externalport (
processid (
groupid (
externaddr
(
externport (
"
component_registerApp
id (
type (
groupid (
internaladdr (
internalport (
externaladdr (
externalport (
externaddr (
externport (
"=
component_updateApp
id (
type (
load (
*f
msgId
hello
registerApp
broadcastApp
updateApp
webAppCmd
adminAppCmd
================================================
FILE: Assets/Game/@Lua/Game/Proto/masterd.bytes.meta
================================================
fileFormatVersion: 2
guid: 222d8d82c180a3441b9b433d7bc13b4b
timeCreated: 1470564399
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game/Proto.meta
================================================
fileFormatVersion: 2
guid: 4f1ae7b788560ec4a8a806b06b1f2136
folderAsset: yes
timeCreated: 1470561899
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Game.meta
================================================
fileFormatVersion: 2
guid: feb7d35f0122c7242a31bf2903ceb061
folderAsset: yes
timeCreated: 1470561899
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Lib/protobuf/parser.lua
================================================
-----------------------
-- simple proto parser
-----------------------
local lpeg = require "lpeg"
local P = lpeg.P
local S = lpeg.S
local R = lpeg.R
local C = lpeg.C
local Ct = lpeg.Ct
local Cg = lpeg.Cg
local Cc = lpeg.Cc
local V = lpeg.V
local next = next
local error = error
local tonumber = tonumber
local pairs = pairs
local ipairs = ipairs
local rawset = rawset
local tinsert = table.insert
local smatch = string.match
local sbyte = string.byte
local internal_type = {
double = "TYPE_DOUBLE",
float = "TYPE_FLOAT",
uint64 = "TYPE_UINT64",
int = "TYPE_INT32",
int32 = "TYPE_INT32",
int64 = "TYPE_INT64",
fixed64 = "TYPE_FIXED64",
fixed32 = "TYPE_FIXED32",
bool = "TYPE_BOOL",
string = "TYPE_STRING",
bytes = "TYPE_BYTES",
uint32 = "TYPE_UINT32",
sfixed32 = "TYPE_SFIXED32",
sfixed64 = "TYPE_SFIXED64",
sint32 = "TYPE_SINT32",
sint64 = "TYPE_SINT64",
}
local function count_lines(_,pos, parser_state)
if parser_state.pos < pos then
parser_state.line = parser_state.line + 1
parser_state.pos = pos
end
return pos
end
local exception = lpeg.Cmt( lpeg.Carg(1) , function ( _ , pos, parser_state)
error( "syntax error at [" .. (parser_state.file or "") .."] (" .. parser_state.line ..")" )
return pos
end)
local eof = P(-1)
local newline = lpeg.Cmt((P"\n" + "\r\n") * lpeg.Carg(1) ,count_lines)
local line_comment = "//" * (1 - newline) ^0 * (newline + eof)
local blank = S" \t" + newline + line_comment
local blank0 = blank ^ 0
local blanks = blank ^ 1
local alpha = R"az" + R"AZ" + "_"
local alnum = alpha + R"09"
local str_c = (1 - S("\\\"")) + P("\\") * 1
local str = P"\"" * C(str_c^0) * "\""
local dotname = ("." * alpha * alnum ^ 0) ^ 0
local typename = C(alpha * alnum ^ 0 * dotname)
local name = C(alpha * alnum ^ 0)
local filename = P"\"" * C((alnum + "/" + "." + "-")^1) * "\""
local id = R"09" ^ 1 / tonumber + "max" * Cc(-1)
local bool = "true" * Cc(true) + "false" * Cc(false)
local value = str + bool + name + id
local patterns = {}
local enum_item = Cg(name * blank0 * "=" * blank0 * id * blank0 * ";" * blank0)
local function insert(tbl, k,v)
tinsert(tbl, { name = k , number = v })
return tbl
end
patterns.ENUM = Ct(Cg("enum","type") * blanks * Cg(typename,"name") * blank0 *
"{" * blank0 *
Cg(lpeg.Cf(Ct"" * enum_item^1 , insert),"value")
* "}" * blank0)
local prefix_field = P"required" * Cc"LABEL_REQUIRED" +
P"optional" * Cc"LABEL_OPTIONAL" +
P"repeated" * Cc"LABEL_REPEATED"
local postfix_pair = blank0 * Cg(name * blank0 * "=" * blank0 * value * blank0)
local postfix_pair_2 = blank0 * "," * postfix_pair
local postfix_field = "[" * postfix_pair * postfix_pair_2^0 * blank0 * "]"
local options = lpeg.Cf(Ct"" * postfix_field , rawset) ^ -1
local function setoption(t, options)
if next(options) then
t.options = options
end
return t
end
local message_field = lpeg.Cf (
Ct( Cg(prefix_field,"label") * blanks *
Cg(typename,"type_name") * blanks *
Cg(name,"name") * blank0 * "=" * blank0 *
Cg(id,"number")
) * blank0 * options ,
setoption) * blank0 * ";" * blank0
local extensions = Ct(
Cg("extensions" , "type") * blanks *
Cg(id,"start") * blanks * "to" * blanks *
Cg(id,"end") * blank0 * ";" * blank0
)
patterns.EXTEND = Ct(
Cg("extend", "type") * blanks *
Cg(typename, "name") * blank0 * "{" * blank0 *
Cg(Ct((message_field) ^ 1),"extension") * "}" * blank0
)
patterns.MESSAGE = P { Ct(
Cg("message","type") * blanks *
Cg(typename,"name") * blank0 * "{" * blank0 *
Cg(Ct((message_field + patterns.ENUM + extensions + patterns.EXTEND + V(1)) ^ 0),"items") * "}" * blank0
) }
patterns.OPTION = Ct(
Cg("option" , "type") * blanks *
Cg(name, "name") * blank0 * "=" * blank0 *
Cg(value, "value")
) * blank0 * ";" * blank0
patterns.IMPORT = Ct( Cg("import" , "type") * blanks * Cg(filename, "name") ) * blank0 * ";" * blank0
patterns.PACKAGE = Ct( Cg("package", "type") * blanks * Cg(typename, "name") ) * blank0 * ";" * blank0
local proto_tbl = { "PROTO" }
do
local k, v = next(patterns)
local p = V(k)
proto_tbl[k] = v
for k,v in next , patterns , k do
proto_tbl[k] = v
p = p + V(k)
end
proto_tbl.PROTO = Ct(blank0 * p ^ 1)
end
local proto = P(proto_tbl)
local deal = {}
function deal:import(v)
self.dependency = self.dependency or {}
tinsert(self.dependency , v.name)
end
function deal:package(v)
self.package = v.name
end
function deal:enum(v)
self.enum_type = self.enum_type or {}
tinsert(self.enum_type , v)
end
function deal:option(v)
self.options = self.options or {}
self.options[v.name] = v.value
end
function deal:extend(v)
self.extension = self.extension or {}
local extendee = v.name
for _,v in ipairs(v.extension) do
v.extendee = extendee
v.type = internal_type[v.type_name]
if v.type then
v.type_name = nil
end
tinsert(self.extension , v)
end
end
function deal:extensions(v)
self.extension_range = self.extension_range or {}
tinsert(self.extension_range, v)
end
local function _add_nested_message(self, item)
if item.type == nil then
item.type = internal_type[item.type_name]
if item.type then
item.type_name = nil
end
self.field = self.field or {}
tinsert(self.field, item)
else
local f = deal[item.type]
item.type = nil
f(self , item)
end
end
function deal:message(v)
self.nested_type = self.nested_type or {}
local m = { name = v.name }
tinsert(self.nested_type , m)
for _,v in ipairs(v.items) do
_add_nested_message(m, v)
end
end
local function fix(r)
local p = {}
for _,v in ipairs(r) do
local f = deal[v.type]
v.type = nil
f(p , v)
end
p.message_type = p.nested_type
p.nested_type = nil
return p
end
--- fix message name
local NULL = {}
local function _match_name(namespace , n , all)
if sbyte(n) == 46 then
return n
end
repeat
local name = namespace .. "." .. n
if all[name] then
return name
end
namespace = smatch(namespace,"(.*)%.[%w_]+$")
until namespace == nil
end
local function _fix_field(namespace , field, all)
local type_name = field.type_name
if type_name == "" then
field.type_name = nil
return
elseif type_name == nil then
return
end
local full_name = assert(_match_name(namespace, field.type_name, all) , field.type_name , all)
field.type_name = full_name
field.type = all[full_name]
local options = field.options
if options then
if options.default then
field.default_value = tostring(options.default)
options.default = nil
end
if next(options) == nil then
field.options = nil
end
end
end
local function _fix_extension(namespace, ext, all)
for _,field in ipairs(ext or NULL) do
field.extendee = assert(_match_name(namespace, field.extendee,all),field.extendee)
_fix_field(namespace , field , all)
end
end
local function _fix_message(msg , all)
for _,field in ipairs(msg.field or NULL) do
_fix_field(assert(all[msg],msg.name) , field , all)
end
for _,nest in ipairs(msg.nested_type or NULL) do
_fix_message(nest , all)
end
_fix_extension(all[msg] , msg.extension , all)
end
local function _fix_typename(file , all)
for _,message in ipairs(file.message_type or NULL) do
_fix_message(message , all)
end
_fix_extension(file.package , file.extension , all)
end
--- merge messages
local function _enum_fullname(prefix, enum , all)
local fullname
if sbyte(enum.name) == 46 then
fullname = enum.name
else
fullname = prefix .. "." .. enum.name
end
all[fullname] = "TYPE_ENUM"
all[enum] = fullname
end
local function _message_fullname(prefix , msg , all)
local fullname
if sbyte(msg.name) == 46 then
fullname = msg.name
else
fullname = prefix .. "." .. msg.name
end
all[fullname] = "TYPE_MESSAGE"
all[msg] = fullname
for _,nest in ipairs(msg.nested_type or NULL) do
_message_fullname(fullname , nest , all)
end
for _,enum in ipairs(msg.enum_type or NULL) do
_enum_fullname(fullname , enum , all)
end
end
local function _gen_fullname(file , all)
local prefix = ""
if file.package then
prefix = "." .. file.package
end
for _,message in ipairs(file.message_type or NULL) do
_message_fullname(prefix , message , all)
end
for _,enum in ipairs(file.enum_type or NULL) do
_enum_fullname(prefix , enum , all)
end
end
--- parser
local parser = {}
local function parser_one(text,filename)
local state = { file = filename, pos = 0, line = 1 }
local r = lpeg.match(proto * -1 + exception , text , 1, state )
local t = fix(r)
return t
end
function parser.parser(text,filename)
local t = parser_one(text,filename)
local all = {}
_gen_fullname(t,all)
_fix_typename(t , all)
return t
end
local pb = require "protobuf"
function parser.register(fileset , path)
local all = {}
local files = {}
if type(fileset) == "string" then
fileset = { fileset }
end
for _, filename in ipairs(fileset) do
local fullname
if path then
fullname = path .. "/" .. filename
else
fullname = filename
end
local f = assert(io.open(fullname , "r"))
local buffer = f:read "*a"
f:close()
local t = parser_one(buffer,filename)
_gen_fullname(t,all)
t.name = filename
tinsert(files , t)
end
for _,file in ipairs(files) do
_fix_typename(file,all)
end
local pbencode = pb.encode("google.protobuf.FileDescriptorSet" , { file = files })
if pbencode == nil then
error(pb.lasterror())
end
pb.register(pbencode)
return files
end
return parser
================================================
FILE: Assets/Game/@Lua/Lib/protobuf/parser.lua.meta
================================================
fileFormatVersion: 2
guid: 6cd0b0e903f425e47800ac1108158e4e
timeCreated: 1467076000
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Lib/protobuf/protobuf.lua
================================================
local c = require "protobuf.c"
local setmetatable = setmetatable
local type = type
local table = table
local assert = assert
local pairs = pairs
local ipairs = ipairs
local string = string
local print = print
local io = io
local tinsert = table.insert
local rawget = rawget
module "protobuf"
local _pattern_cache = {}
-- skynet clear
local P = c._env_new()
local GC = c._gc(P)
function lasterror()
return c._last_error(P)
end
local decode_type_cache = {}
local _R_meta = {}
function _R_meta:__index(key)
local v = decode_type_cache[self._CType][key](self, key)
self[key] = v
return v
end
local _reader = {}
function _reader:int(key)
return c._rmessage_integer(self._CObj , key , 0)
end
function _reader:real(key)
return c._rmessage_real(self._CObj , key , 0)
end
function _reader:string(key)
return c._rmessage_string(self._CObj , key , 0)
end
function _reader:bool(key)
return c._rmessage_integer(self._CObj , key , 0) ~= 0
end
function _reader:message(key, message_type)
local rmessage = c._rmessage_message(self._CObj , key , 0)
if rmessage then
local v = {
_CObj = rmessage,
_CType = message_type,
_Parent = self,
}
return setmetatable( v , _R_meta )
end
end
function _reader:int32(key)
return c._rmessage_int32(self._CObj , key , 0)
end
function _reader:int64(key)
return c._rmessage_int64(self._CObj , key , 0)
end
function _reader:int52(key)
return c._rmessage_int52(self._CObj , key , 0)
end
function _reader:uint52(key)
return c._rmessage_uint52(self._CObj , key , 0)
end
function _reader:int_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_integer(cobj , key , i))
end
return ret
end
function _reader:real_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_real(cobj , key , i))
end
return ret
end
function _reader:string_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_string(cobj , key , i))
end
return ret
end
function _reader:bool_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_integer(cobj , key , i) ~= 0)
end
return ret
end
function _reader:message_repeated(key, message_type)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
local m = {
_CObj = c._rmessage_message(cobj , key , i),
_CType = message_type,
_Parent = self,
}
tinsert(ret, setmetatable( m , _R_meta ))
end
return ret
end
function _reader:int32_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_int32(cobj , key , i))
end
return ret
end
function _reader:int64_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_int64(cobj , key , i))
end
return ret
end
function _reader:int52_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_int52(cobj , key , i))
end
return ret
end
function _reader:uint52_repeated(key)
local cobj = self._CObj
local n = c._rmessage_size(cobj , key)
local ret = {}
for i=0,n-1 do
tinsert(ret, c._rmessage_uint52(cobj , key , i))
end
return ret
end
_reader[1] = function(msg) return _reader.int end
_reader[2] = function(msg) return _reader.real end
_reader[3] = function(msg) return _reader.bool end
_reader[4] = function(msg) return _reader.string end
_reader[5] = function(msg) return _reader.string end
_reader[6] = function(msg)
local message = _reader.message
return function(self,key)
return message(self, key, msg)
end
end
_reader[7] = function(msg) return _reader.int64 end
_reader[8] = function(msg) return _reader.int32 end
_reader[9] = _reader[5]
_reader[10] = function(msg) return _reader.int52 end
_reader[11] = function(msg) return _reader.uint52 end
_reader[128+1] = function(msg) return _reader.int_repeated end
_reader[128+2] = function(msg) return _reader.real_repeated end
_reader[128+3] = function(msg) return _reader.bool_repeated end
_reader[128+4] = function(msg) return _reader.string_repeated end
_reader[128+5] = function(msg) return _reader.string_repeated end
_reader[128+6] = function(msg)
local message = _reader.message_repeated
return function(self,key)
return message(self, key, msg)
end
end
_reader[128+7] = function(msg) return _reader.int64_repeated end
_reader[128+8] = function(msg) return _reader.int32_repeated end
_reader[128+9] = _reader[128+5]
_reader[128+10] = function(msg) return _reader.int52_repeated end
_reader[128+11] = function(msg) return _reader.uint52_repeated end
local _decode_type_meta = {}
function _decode_type_meta:__index(key)
local t, msg = c._env_type(P, self._CType, key)
local func = assert(_reader[t],key)(msg)
self[key] = func
return func
end
setmetatable(decode_type_cache , {
__index = function(self, key)
local v = setmetatable({ _CType = key } , _decode_type_meta)
self[key] = v
return v
end
})
local function decode_message( message , buffer, length)
local rmessage = c._rmessage_new(P, message, buffer, length)
if rmessage then
local self = {
_CObj = rmessage,
_CType = message,
}
c._add_rmessage(GC,rmessage)
return setmetatable( self , _R_meta )
end
end
----------- encode ----------------
local encode_type_cache = {}
local function encode_message(CObj, message_type, t)
local type = encode_type_cache[message_type]
for k,v in pairs(t) do
local func = type[k]
func(CObj, k , v)
end
end
local _writer = {
int = c._wmessage_integer,
real = c._wmessage_real,
enum = c._wmessage_string,
string = c._wmessage_string,
int64 = c._wmessage_int64,
int32 = c._wmessage_int32,
int52 = c._wmessage_int52,
uint52 = c._wmessage_uint52,
}
function _writer:bool(k,v)
c._wmessage_integer(self, k, v and 1 or 0)
end
function _writer:message(k, v , message_type)
local submessage = c._wmessage_message(self, k)
encode_message(submessage, message_type, v)
end
function _writer:int_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_integer(self,k,v)
end
end
function _writer:real_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_real(self,k,v)
end
end
function _writer:bool_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_integer(self, k, v and 1 or 0)
end
end
function _writer:string_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_string(self,k,v)
end
end
function _writer:message_repeated(k,v, message_type)
for _,v in ipairs(v) do
local submessage = c._wmessage_message(self, k)
encode_message(submessage, message_type, v)
end
end
function _writer:int32_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_int32(self,k,v)
end
end
function _writer:int64_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_int64(self,k,v)
end
end
function _writer:int52_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_int52(self,k,v)
end
end
function _writer:uint52_repeated(k,v)
for _,v in ipairs(v) do
c._wmessage_uint52(self,k,v)
end
end
_writer[1] = function(msg) return _writer.int end
_writer[2] = function(msg) return _writer.real end
_writer[3] = function(msg) return _writer.bool end
_writer[4] = function(msg) return _writer.string end
_writer[5] = function(msg) return _writer.string end
_writer[6] = function(msg)
local message = _writer.message
return function(self,key , v)
return message(self, key, v, msg)
end
end
_writer[7] = function(msg) return _writer.int64 end
_writer[8] = function(msg) return _writer.int32 end
_writer[9] = _writer[5]
_writer[10] = function(msg) return _writer.int52 end
_writer[11] = function(msg) return _writer.uint52 end
_writer[128+1] = function(msg) return _writer.int_repeated end
_writer[128+2] = function(msg) return _writer.real_repeated end
_writer[128+3] = function(msg) return _writer.bool_repeated end
_writer[128+4] = function(msg) return _writer.string_repeated end
_writer[128+5] = function(msg) return _writer.string_repeated end
_writer[128+6] = function(msg)
local message = _writer.message_repeated
return function(self,key, v)
return message(self, key, v, msg)
end
end
_writer[128+7] = function(msg) return _writer.int64_repeated end
_writer[128+8] = function(msg) return _writer.int32_repeated end
_writer[128+9] = _writer[128+5]
_writer[128+10] = function(msg) return _writer.int52_repeated end
_writer[128+11] = function(msg) return _writer.uint52_repeated end
local _encode_type_meta = {}
function _encode_type_meta:__index(key)
local t, msg = c._env_type(P, self._CType, key)
local func = assert(_writer[t],key)(msg)
self[key] = func
return func
end
setmetatable(encode_type_cache , {
__index = function(self, key)
local v = setmetatable({ _CType = key } , _encode_type_meta)
self[key] = v
return v
end
})
function encode( message, t , func , ...)
local encoder = c._wmessage_new(P, message)
assert(encoder , message)
encode_message(encoder, message, t)
if func then
local buffer, len = c._wmessage_buffer(encoder)
local ret = func(buffer, len, ...)
c._wmessage_delete(encoder)
return ret
else
local s = c._wmessage_buffer_string(encoder)
c._wmessage_delete(encoder)
return s
end
end
--------- unpack ----------
local _pattern_type = {
[1] = {"%d","i"},
[2] = {"%F","r"},
[3] = {"%d","b"},
[4] = {"%d","i"},
[5] = {"%s","s"},
[6] = {"%s","m"},
[7] = {"%D","x"},
[8] = {"%d","p"},
[10] = {"%D","d"},
[11] = {"%D","u"},
[128+1] = {"%a","I"},
[128+2] = {"%a","R"},
[128+3] = {"%a","B"},
[128+4] = {"%a","I"},
[128+5] = {"%a","S"},
[128+6] = {"%a","M"},
[128+7] = {"%a","X"},
[128+8] = {"%a","P"},
[128+10] = {"%a", "D" },
[128+11] = {"%a", "U" },
}
_pattern_type[9] = _pattern_type[5]
_pattern_type[128+9] = _pattern_type[128+5]
local function _pattern_create(pattern)
local iter = string.gmatch(pattern,"[^ ]+")
local message = iter()
local cpat = {}
local lua = {}
for v in iter do
local tidx = c._env_type(P, message, v)
local t = _pattern_type[tidx]
assert(t,tidx)
tinsert(cpat,v .. " " .. t[1])
tinsert(lua,t[2])
end
local cobj = c._pattern_new(P, message , "@" .. table.concat(cpat," "))
if cobj == nil then
return
end
c._add_pattern(GC, cobj)
local pat = {
CObj = cobj,
format = table.concat(lua),
size = 0
}
pat.size = c._pattern_size(pat.format)
return pat
end
setmetatable(_pattern_cache, {
__index = function(t, key)
local v = _pattern_create(key)
t[key] = v
return v
end
})
function unpack(pattern, buffer, length)
local pat = _pattern_cache[pattern]
return c._pattern_unpack(pat.CObj , pat.format, pat.size, buffer, length)
end
function pack(pattern, ...)
local pat = _pattern_cache[pattern]
return c._pattern_pack(pat.CObj, pat.format, pat.size , ...)
end
function check(typename , field)
if field == nil then
return c._env_type(P,typename)
else
return c._env_type(P,typename,field) ~=0
end
end
--------------
local default_cache = {}
-- todo : clear default_cache, v._CObj
local function default_table(typename)
local v = default_cache[typename]
if v then
return v
end
v = { __index = assert(decode_message(typename , "")) }
default_cache[typename] = v
return v
end
local decode_message_mt = {}
local function decode_message_cb(typename, buffer)
return setmetatable ( { typename, buffer } , decode_message_mt)
end
function decode(typename, buffer, length)
local ret = {}
local ok = c._decode(P, decode_message_cb , ret , typename, buffer, length)
if ok then
return setmetatable(ret , default_table(typename))
else
return false , c._last_error(P)
end
end
local function expand(tbl)
local typename = rawget(tbl , 1)
local buffer = rawget(tbl , 2)
tbl[1] , tbl[2] = nil , nil
assert(c._decode(P, decode_message_cb , tbl , typename, buffer), typename)
setmetatable(tbl , default_table(typename))
end
function decode_message_mt.__index(tbl, key)
expand(tbl)
return tbl[key]
end
function decode_message_mt.__pairs(tbl)
expand(tbl)
return pairs(tbl)
end
local function set_default(typename, tbl)
for k,v in pairs(tbl) do
if type(v) == "table" then
local t, msg = c._env_type(P, typename, k)
if t == 6 then
set_default(msg, v)
elseif t == 128+6 then
for _,v in ipairs(v) do
set_default(msg, v)
end
end
end
end
return setmetatable(tbl , default_table(typename))
end
function register( buffer)
c._env_register(P, buffer)
end
function register_file(filename)
local f = assert(io.open(filename , "rb"))
local buffer = f:read "*a"
c._env_register(P, buffer)
f:close()
end
function enum_id(enum_type, enum_name)
return c._env_enum_id(P, enum_type, enum_name)
end
function extract(tbl)
local typename = rawget(tbl , 1)
local buffer = rawget(tbl , 2)
if type(typename) == "string" and type(buffer) == "string" then
if check(typename) then
expand(tbl)
end
end
for k, v in pairs(tbl) do
if type(v) == "table" then
extract(v)
end
end
end
default=set_default
================================================
FILE: Assets/Game/@Lua/Lib/protobuf/protobuf.lua.meta
================================================
fileFormatVersion: 2
guid: 17335bd7728baf44eb90e5b885018eb6
timeCreated: 1467076000
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Lib/protobuf.meta
================================================
fileFormatVersion: 2
guid: 7b27e103ca4e7a94db4809d5490bdfbb
folderAsset: yes
timeCreated: 1467076000
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/Lib.meta
================================================
fileFormatVersion: 2
guid: 7837997a641ac9e42afe5dc7bb600f7c
folderAsset: yes
timeCreated: 1470561898
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/import.lua
================================================
require "Base/LGlobal"
require "Base/LVersion"
require "Base/LClass"
require "Base/LMessage"
require "Game/Common/i18n"
require "Game/Common/Util"
require "Game/Common/MsgId"
require "Game/Common/EventNames"
require "Game/Common/NetworkManager"
require "Game/MsgBox"
================================================
FILE: Assets/Game/@Lua/import.lua.meta
================================================
fileFormatVersion: 2
guid: 77ef4bedebd064ab598b56673ae4559f
timeCreated: 1463891082
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua/main.lua
================================================
import "UnityEngine"
import "UnityEngine.Object"
import "UnityEngine.UI"
import "UnityEngine.SceneManagement"
import "Lui"
require "import"
local function main()
print(i18n["1001"])
-- NetworkManager:GetInstance()
LLoadBundle.GetInstance():LoadAllBundles({
"scenes-first_unity.ab",
"scenes-second_unity.ab",
"atlas-num_png.ab",
"atlas-face_png.ab",
"atlas-common_png.ab",
"prefabs-msgbox_prefab.ab",
"prefabs-windowgridview_prefab.ab",
"prefabs-list_cell_prefab.ab",
"prefabs-grid_cell_prefab.ab",
"prefabs-page_cell_prefab.ab"
},function()
local lab_progress = GameObject.Find("lab_progress"):GetComponent(Text)
LWindowManager:GetInstance():LoadSceneAsync("first",function( p )
lab_progress.text = string.format(i18n["1002"],p)
end)
end,nil)
end
-- Declare global function.
LDeclare("main", main)
return main
================================================
FILE: Assets/Game/@Lua/main.lua.meta
================================================
fileFormatVersion: 2
guid: d6e78b7e14bb27f4f9a3f16365b75394
timeCreated: 1474776353
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/@Lua.meta
================================================
fileFormatVersion: 2
guid: c08388a38d2a3d14db7bc4768cc0c13f
folderAsset: yes
timeCreated: 1455897199
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/AssetBundleMaker/ExportAssetBundles.cs
================================================
using UnityEngine;
using UnityEditor;
using UnityEngine.Events;
using System.IO;
using System.Text;
using System.Collections.Generic;
public class ExportAssetBundles : Editor
{
public static void Run()
{
MakeDebugFile.CopyLuaTxt();
CreateAssetBundles();
// CreateZipFile();
CreateVersionFile();
AssetDatabase.Refresh();
}
public static void CreateAssetBundles()
{
Helper.forEachHandle(Application.dataPath + "/StreamingAssets", new List { "ab", "manifest" }, (string filename) =>
{
string assetPath = filename.Replace(Application.dataPath, "Assets");
AssetDatabase.DeleteAsset(assetPath);
});
string[] paths = new string[] { "Audios", "Prefabs", "Atlas", "@Lua", "Scenes" };
List buildMap = new List();
foreach (string path in paths)
{
string basePath = Application.dataPath + "/Game/Resources/" + path;
if (path.StartsWith("@"))
{
List list = new List();
Helper.forEachHandle(basePath, null, (string filename) => {
string assetPath = filename.Replace(Application.dataPath, "Assets");
list.Add(assetPath);
});
AssetBundleBuild build = new AssetBundleBuild();
build.assetBundleName = path + ".ab";
build.assetNames = list.ToArray();
buildMap.Add(build);
}
else {
Helper.forEachHandle(basePath, null, (string filename) => {
string assetPath = filename.Replace(Application.dataPath, "Assets");
string baseName = assetPath.Substring(22);
AssetBundleBuild build = new AssetBundleBuild();
build.assetBundleName = baseName.Replace('.', '_').Replace(Path.DirectorySeparatorChar, '-') + ".ab";
build.assetNames = new string[] { assetPath };
buildMap.Add(build);
});
}
}
BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath, buildMap.ToArray(),
BuildAssetBundleOptions.DeterministicAssetBundle |
BuildAssetBundleOptions.DisableWriteTypeTree |
BuildAssetBundleOptions.ChunkBasedCompression, ExportConfigWindow.BUILD_TARGET);
//删除临时lua文件
AssetDatabase.DeleteAsset("Assets/Game/Resources/@Lua");
}
static void CreateVersionFile()
{
string resPath = ExportConfigWindow.EXPORT_OUT_PATH + Path.DirectorySeparatorChar;
StringBuilder versions = new StringBuilder();
// string zipPath = resPath + LGameConfig.UPDATE_FILE_ZIP;
// if (!File.Exists(zipPath))
// {
// Debug.LogWarning("热更zip包不存在");
// return;
// }
Helper.forEachHandle(Application.dataPath + "/StreamingAssets", new List { "ab" }, (string filename) =>
{
string baseName = Path.GetFileName(filename);
string md5 = ExportAssetBundles.MD5File(filename);
versions.Append(baseName).Append(",").Append(md5).Append("\n");
});
// string md5 = ExportAssetBundles.MD5File(zipPath);
// versions.Append(LGameConfig.UPDATE_FILE_ZIP).Append(",").Append(md5);
// 生成配置文件
FileStream stream = new FileStream(resPath + "version.ver", FileMode.Create);
byte[] data = Encoding.UTF8.GetBytes(versions.ToString());
stream.Write(data, 0, data.Length);
stream.Flush();
stream.Close();
Debug.Log(" 版本文件: " + resPath + "version.ver");
}
// static void CreateZipFile()
// {
// string srcPath = Application.streamingAssetsPath;
// string outPath = ExportConfigWindow.EXPORT_OUT_PATH + Path.DirectorySeparatorChar;
// Helper.forEachHandle(srcPath, new List() { "meta" }, (string filename) =>
// {
// File.Delete(@filename);
// });
// if (!Directory.Exists(srcPath))
// {
// Directory.CreateDirectory(srcPath);
// }
// LUtil.PackFiles(outPath + LGameConfig.UPDATE_FILE_ZIP, srcPath);
// Debug.Log(" 热更zip包: " + outPath + LGameConfig.UPDATE_FILE_ZIP);
// }
public static string MD5File(string file)
{
try
{
FileStream fs = new FileStream(file, FileMode.Open);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(fs);
fs.Close();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}
catch (System.Exception ex)
{
throw new System.Exception("md5file() fail, error:" + ex.Message);
}
}
}
================================================
FILE: Assets/Game/Editor/AssetBundleMaker/ExportAssetBundles.cs.meta
================================================
fileFormatVersion: 2
guid: 80073506afe2099489208d71e7a56249
timeCreated: 1470452693
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/AssetBundleMaker/ExportConfigWindow.cs
================================================
using UnityEngine;
using UnityEditor;
using System.Collections;
public class ExportConfigWindow : EditorWindow
{
public static string EXPORT_OUT_PATH = Application.dataPath;
public static BuildTarget BUILD_TARGET = BuildTarget.StandaloneWindows;
[MenuItem("Tools/HotFix Config")]
static void Init()
{
#if UNITY_STANDALONE_WIN
BUILD_TARGET = BuildTarget.StandaloneWindows;
#elif UNITY_ANDROID
BUILD_TARGET = BuildTarget.Android;
#elif UNITY_ANDROID
BUILD_TARGET = BuildTarget.iPhone;
#elif UNITY_STANDALONE_OSX
BUILD_TARGET = BuildTarget.StandaloneOSXUniversal;
#endif
// Get existing open window or if none, make a new one:
ExportConfigWindow window = (ExportConfigWindow)EditorWindow.GetWindow(typeof(ExportConfigWindow), true, "Hotfix");
window.Show();
}
void OnGUI()
{
GUILayout.Label("build target", EditorStyles.boldLabel);
BUILD_TARGET = (BuildTarget)EditorGUILayout.EnumPopup("Target", BUILD_TARGET);
if (GUILayout.Button("run"))
{
EditorApplication.delayCall += ExportAssetBundles.Run;
}
}
}
================================================
FILE: Assets/Game/Editor/AssetBundleMaker/ExportConfigWindow.cs.meta
================================================
fileFormatVersion: 2
guid: c2b5ca7dbd1c50444862028209d360b4
timeCreated: 1470452693
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/AssetBundleMaker.meta
================================================
fileFormatVersion: 2
guid: 6ed52869528c7934aaebf7de26dd0e77
folderAsset: yes
timeCreated: 1470552333
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/BmfontMaker/BMFont.cs
================================================
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2015 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
using System.Collections.Generic;
///
/// BMFont reader. C# implementation of http://www.angelcode.com/products/bmfont/
///
[System.Serializable]
public class BMFont
{
[HideInInspector][SerializeField] int mSize = 16; // How much to move the cursor when moving to the next line
[HideInInspector][SerializeField] int mBase = 0; // Offset from the top of the line to the base of each character
[HideInInspector][SerializeField] int mWidth = 0; // Original width of the texture
[HideInInspector][SerializeField] int mHeight = 0; // Original height of the texture
[HideInInspector][SerializeField] string mSpriteName;
// List of serialized glyphs
[HideInInspector][SerializeField] List mSaved = new List();
// Actual glyphs that we'll be working with are stored in a dictionary, making the lookup faster
Dictionary mDict = new Dictionary();
///
/// Whether the font can be used.
///
public bool isValid { get { return (mSaved.Count > 0); } }
///
/// Size of this font (for example 32 means 32 pixels).
///
public int charSize { get { return mSize; } set { mSize = value; } }
///
/// Base offset applied to characters.
///
public int baseOffset { get { return mBase; } set { mBase = value; } }
///
/// Original width of the texture.
///
public int texWidth { get { return mWidth; } set { mWidth = value; } }
///
/// Original height of the texture.
///
public int texHeight { get { return mHeight; } set { mHeight = value; } }
///
/// Number of valid glyphs.
///
public int glyphCount { get { return isValid ? mSaved.Count : 0; } }
///
/// Original name of the sprite that the font is expecting to find (usually the name of the texture).
///
public string spriteName { get { return mSpriteName; } set { mSpriteName = value; } }
///
/// Access to BMFont's entire set of glyphs.
///
public List glyphs { get { return mSaved; } }
///
/// Helper function that retrieves the specified glyph, creating it if necessary.
///
public BMGlyph GetGlyph (int index, bool createIfMissing)
{
// Get the requested glyph
BMGlyph glyph = null;
if (mDict.Count == 0)
{
// Populate the dictionary for faster access
for (int i = 0, imax = mSaved.Count; i < imax; ++i)
{
BMGlyph bmg = mSaved[i];
mDict.Add(bmg.index, bmg);
}
}
// Saved check is here so that the function call is not needed if it's true
if (!mDict.TryGetValue(index, out glyph) && createIfMissing)
{
glyph = new BMGlyph();
glyph.index = index;
mSaved.Add(glyph);
mDict.Add(index, glyph);
}
return glyph;
}
///
/// Retrieve the specified glyph, if it's present.
///
public BMGlyph GetGlyph (int index) { return GetGlyph(index, false); }
///
/// Clear the glyphs.
///
public void Clear ()
{
mDict.Clear();
mSaved.Clear();
}
///
/// Trim the glyphs, ensuring that they will never go past the specified bounds.
///
public void Trim (int xMin, int yMin, int xMax, int yMax)
{
if (isValid)
{
for (int i = 0, imax = mSaved.Count; i < imax; ++i)
{
BMGlyph glyph = mSaved[i];
if (glyph != null) glyph.Trim(xMin, yMin, xMax, yMax);
}
}
}
}
================================================
FILE: Assets/Game/Editor/BmfontMaker/BMFont.cs.meta
================================================
fileFormatVersion: 2
guid: 94cc67aca494b1943a7a0f51b581441d
timeCreated: 1463716780
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/BmfontMaker/BMFontReader.cs
================================================
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2015 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
using UnityEditor;
using System.Text;
///
/// Helper class that takes care of loading BMFont's glyph information from the specified byte array.
/// This functionality is not a part of BMFont anymore because Flash export option can't handle System.IO functions.
///
public static class BMFontReader
{
///
/// Helper function that retrieves the string value of the key=value pair.
///
static string GetString (string s)
{
int idx = s.IndexOf('=');
return (idx == -1) ? "" : s.Substring(idx + 1);
}
///
/// Helper function that retrieves the integer value of the key=value pair.
///
static int GetInt (string s)
{
int val = 0;
string text = GetString(s);
#if UNITY_FLASH
try { val = int.Parse(text); } catch (System.Exception) { }
#else
int.TryParse(text, out val);
#endif
return val;
}
///
/// Reload the font data.
///
static public void Load (BMFont font, string name, byte[] bytes)
{
font.Clear();
if (bytes != null)
{
BmByteReader reader = new BmByteReader(bytes);
char[] separator = new char[] { ' ' };
while (reader.canRead)
{
string line = reader.ReadLine();
if (string.IsNullOrEmpty(line)) break;
string[] split = line.Split(separator, System.StringSplitOptions.RemoveEmptyEntries);
int len = split.Length;
if (split[0] == "char")
{
// Expected data style:
// char id=13 x=506 y=62 width=3 height=3 xoffset=-1 yoffset=50 xadvance=0 page=0 chnl=15
int channel = (len > 10) ? GetInt(split[10]) : 15;
if (len > 9 && GetInt(split[9]) > 0)
{
Debug.LogError("Your font was exported with more than one texture. Only one texture is supported by NGUI.\n" +
"You need to re-export your font, enlarging the texture's dimensions until everything fits into just one texture.");
break;
}
if (len > 8)
{
int id = GetInt(split[1]);
BMGlyph glyph = font.GetGlyph(id, true);
if (glyph != null)
{
glyph.x = GetInt(split[2]);
glyph.y = GetInt(split[3]);
glyph.width = GetInt(split[4]);
glyph.height = GetInt(split[5]);
glyph.offsetX = GetInt(split[6]);
glyph.offsetY = GetInt(split[7]);
glyph.advance = GetInt(split[8]);
glyph.channel = channel;
}
else Debug.Log("Char: " + split[1] + " (" + id + ") is NULL");
}
else
{
Debug.LogError("Unexpected number of entries for the 'char' field (" + name + ", " + split.Length + "):\n" + line);
break;
}
}
else if (split[0] == "kerning")
{
// Expected data style:
// kerning first=84 second=244 amount=-5
if (len > 3)
{
int first = GetInt(split[1]);
int second = GetInt(split[2]);
int amount = GetInt(split[3]);
BMGlyph glyph = font.GetGlyph(second, true);
if (glyph != null) glyph.SetKerning(first, amount);
}
else
{
Debug.LogError("Unexpected number of entries for the 'kerning' field (" +
name + ", " + split.Length + "):\n" + line);
break;
}
}
else if (split[0] == "common")
{
// Expected data style:
// common lineHeight=64 base=51 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=4 greenChnl=4 blueChnl=4
if (len > 5)
{
font.charSize = GetInt(split[1]);
font.baseOffset = GetInt(split[2]);
font.texWidth = GetInt(split[3]);
font.texHeight = GetInt(split[4]);
int pages = GetInt(split[5]);
if (pages != 1)
{
Debug.LogError("Font '" + name + "' must be created with only 1 texture, not " + pages);
break;
}
}
else
{
Debug.LogError("Unexpected number of entries for the 'common' field (" +
name + ", " + split.Length + "):\n" + line);
break;
}
}
else if (split[0] == "page")
{
// Expected data style:
// page id=0 file="textureName.png"
if (len > 2)
{
font.spriteName = GetString(split[2]).Replace("\"", "");
font.spriteName = font.spriteName.Replace(".png", "");
font.spriteName = font.spriteName.Replace(".tga", "");
}
}
}
}
}
}
================================================
FILE: Assets/Game/Editor/BmfontMaker/BMFontReader.cs.meta
================================================
fileFormatVersion: 2
guid: a9fc0907767cc05448abe2c012b90c22
timeCreated: 1463716780
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/BmfontMaker/BMGlyph.cs
================================================
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2015 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
using System.Collections.Generic;
///
/// Glyph structure used by BMFont. For more information see http://www.angelcode.com/products/bmfont/
///
[System.Serializable]
public class BMGlyph
{
public int index; // Index of this glyph (used by BMFont)
public int x; // Offset from the left side of the texture to the left side of the glyph
public int y; // Offset from the top of the texture to the top of the glyph
public int width; // Glyph's width in pixels
public int height; // Glyph's height in pixels
public int offsetX; // Offset to apply to the cursor's left position before drawing this glyph
public int offsetY; // Offset to apply to the cursor's top position before drawing this glyph
public int advance; // How much to move the cursor after printing this character
public int channel; // Channel mask (in most cases this will be 15 (RGBA, 1+2+4+8)
public List kerning;
///
/// Retrieves the special amount by which to adjust the cursor position, given the specified previous character.
///
public int GetKerning (int previousChar)
{
if (kerning != null && previousChar != 0)
{
for (int i = 0, imax = kerning.Count; i < imax; i += 2)
if (kerning[i] == previousChar)
return kerning[i + 1];
}
return 0;
}
///
/// Add a new kerning entry to the character (or adjust an existing one).
///
public void SetKerning (int previousChar, int amount)
{
if (kerning == null) kerning = new List();
for (int i = 0; i < kerning.Count; i += 2)
{
if (kerning[i] == previousChar)
{
kerning[i + 1] = amount;
return;
}
}
kerning.Add(previousChar);
kerning.Add(amount);
}
///
/// Trim the glyph, given the specified minimum and maximum dimensions in pixels.
///
public void Trim (int xMin, int yMin, int xMax, int yMax)
{
int x1 = x + width;
int y1 = y + height;
if (x < xMin)
{
int offset = xMin - x;
x += offset;
width -= offset;
offsetX += offset;
}
if (y < yMin)
{
int offset = yMin - y;
y += offset;
height -= offset;
offsetY += offset;
}
if (x1 > xMax) width -= x1 - xMax;
if (y1 > yMax) height -= y1 - yMax;
}
}
================================================
FILE: Assets/Game/Editor/BmfontMaker/BMGlyph.cs.meta
================================================
fileFormatVersion: 2
guid: a523ba19da28a9c4fbda283c3433d53d
timeCreated: 1463716780
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/BmfontMaker/BmBetterList.cs
================================================
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2015 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
using System.Collections.Generic;
using System.Diagnostics;
///
/// This improved version of the System.Collections.Generic.List that doesn't release the buffer on Clear(),
/// resulting in better performance and less garbage collection.
/// PRO: BetterList performs faster than List when you Add and Remove items (although slower if you remove from the beginning).
/// CON: BetterList performs worse when sorting the list. If your operations involve sorting, use the standard List instead.
///
public class BmBetterList
{
#if UNITY_FLASH
List mList = new List();
///
/// Direct access to the buffer. Note that you should not use its 'Length' parameter, but instead use BetterList.size.
///
public T this[int i]
{
get { return mList[i]; }
set { mList[i] = value; }
}
///
/// Compatibility with the non-flash syntax.
///
public List buffer { get { return mList; } }
///
/// Direct access to the buffer's size. Note that it's only public for speed and efficiency. You shouldn't modify it.
///
public int size { get { return mList.Count; } }
///
/// For 'foreach' functionality.
///
public IEnumerator GetEnumerator () { return mList.GetEnumerator(); }
///
/// Clear the array by resetting its size to zero. Note that the memory is not actually released.
///
public void Clear () { mList.Clear(); }
///
/// Clear the array and release the used memory.
///
public void Release () { mList.Clear(); }
///
/// Add the specified item to the end of the list.
///
public void Add (T item) { mList.Add(item); }
///
/// Insert an item at the specified index, pushing the entries back.
///
public void Insert (int index, T item)
{
if (index > -1 && index < mList.Count) mList.Insert(index, item);
else mList.Add(item);
}
///
/// Returns 'true' if the specified item is within the list.
///
public bool Contains (T item) { return mList.Contains(item); }
///
/// Return the index of the specified item.
///
public int IndexOf (T item) { return mList.IndexOf(item); }
///
/// Remove the specified item from the list. Note that RemoveAt() is faster and is advisable if you already know the index.
///
public bool Remove (T item) { return mList.Remove(item); }
///
/// Remove an item at the specified index.
///
public void RemoveAt (int index) { mList.RemoveAt(index); }
///
/// Remove an item from the end.
///
public T Pop ()
{
if (buffer != null && size != 0)
{
T val = buffer[mList.Count - 1];
mList.RemoveAt(mList.Count - 1);
return val;
}
return default(T);
}
///
/// Mimic List's ToArray() functionality, except that in this case the list is resized to match the current size.
///
public T[] ToArray () { return mList.ToArray(); }
///
/// List.Sort equivalent.
///
public void Sort (System.Comparison comparer) { mList.Sort(comparer); }
#else
///
/// Direct access to the buffer. Note that you should not use its 'Length' parameter, but instead use BetterList.size.
///
public T[] buffer;
///
/// Direct access to the buffer's size. Note that it's only public for speed and efficiency. You shouldn't modify it.
///
public int size = 0;
///
/// For 'foreach' functionality.
///
[DebuggerHidden]
[DebuggerStepThrough]
public IEnumerator GetEnumerator ()
{
if (buffer != null)
{
for (int i = 0; i < size; ++i)
{
yield return buffer[i];
}
}
}
///
/// Convenience function. I recommend using .buffer instead.
///
[DebuggerHidden]
public T this[int i]
{
get { return buffer[i]; }
set { buffer[i] = value; }
}
///
/// Helper function that expands the size of the array, maintaining the content.
///
void AllocateMore ()
{
T[] newList = (buffer != null) ? new T[Mathf.Max(buffer.Length << 1, 32)] : new T[32];
if (buffer != null && size > 0) buffer.CopyTo(newList, 0);
buffer = newList;
}
///
/// Trim the unnecessary memory, resizing the buffer to be of 'Length' size.
/// Call this function only if you are sure that the buffer won't need to resize anytime soon.
///
void Trim ()
{
if (size > 0)
{
if (size < buffer.Length)
{
T[] newList = new T[size];
for (int i = 0; i < size; ++i) newList[i] = buffer[i];
buffer = newList;
}
}
else buffer = null;
}
///
/// Clear the array by resetting its size to zero. Note that the memory is not actually released.
///
public void Clear () { size = 0; }
///
/// Clear the array and release the used memory.
///
public void Release () { size = 0; buffer = null; }
///
/// Add the specified item to the end of the list.
///
public void Add (T item)
{
if (buffer == null || size == buffer.Length) AllocateMore();
buffer[size++] = item;
}
///
/// Insert an item at the specified index, pushing the entries back.
///
public void Insert (int index, T item)
{
if (buffer == null || size == buffer.Length) AllocateMore();
if (index > -1 && index < size)
{
for (int i = size; i > index; --i) buffer[i] = buffer[i - 1];
buffer[index] = item;
++size;
}
else Add(item);
}
///
/// Returns 'true' if the specified item is within the list.
///
public bool Contains (T item)
{
if (buffer == null) return false;
for (int i = 0; i < size; ++i) if (buffer[i].Equals(item)) return true;
return false;
}
///
/// Return the index of the specified item.
///
public int IndexOf (T item)
{
if (buffer == null) return -1;
for (int i = 0; i < size; ++i) if (buffer[i].Equals(item)) return i;
return -1;
}
///
/// Remove the specified item from the list. Note that RemoveAt() is faster and is advisable if you already know the index.
///
public bool Remove (T item)
{
if (buffer != null)
{
EqualityComparer comp = EqualityComparer.Default;
for (int i = 0; i < size; ++i)
{
if (comp.Equals(buffer[i], item))
{
--size;
buffer[i] = default(T);
for (int b = i; b < size; ++b) buffer[b] = buffer[b + 1];
buffer[size] = default(T);
return true;
}
}
}
return false;
}
///
/// Remove an item at the specified index.
///
public void RemoveAt (int index)
{
if (buffer != null && index > -1 && index < size)
{
--size;
buffer[index] = default(T);
for (int b = index; b < size; ++b) buffer[b] = buffer[b + 1];
buffer[size] = default(T);
}
}
///
/// Remove an item from the end.
///
public T Pop ()
{
if (buffer != null && size != 0)
{
T val = buffer[--size];
buffer[size] = default(T);
return val;
}
return default(T);
}
///
/// Mimic List's ToArray() functionality, except that in this case the list is resized to match the current size.
///
public T[] ToArray () { Trim(); return buffer; }
//class Comparer : System.Collections.IComparer
//{
// public System.Comparison func;
// public int Compare (object x, object y) { return func((T)x, (T)y); }
//}
//Comparer mComp = new Comparer();
///
/// List.Sort equivalent. Doing Array.Sort causes GC allocations.
///
//public void Sort (System.Comparison comparer)
//{
// if (size > 0)
// {
// mComp.func = comparer;
// System.Array.Sort(buffer, 0, size, mComp);
// }
//}
///
/// List.Sort equivalent. Manual sorting causes no GC allocations.
///
[DebuggerHidden]
[DebuggerStepThrough]
public void Sort (CompareFunc comparer)
{
int start = 0;
int max = size - 1;
bool changed = true;
while (changed)
{
changed = false;
for (int i = start; i < max; ++i)
{
// Compare the two values
if (comparer(buffer[i], buffer[i + 1]) > 0)
{
// Swap the values
T temp = buffer[i];
buffer[i] = buffer[i + 1];
buffer[i + 1] = temp;
changed = true;
}
else if (!changed)
{
// Nothing has changed -- we can start here next time
start = (i == 0) ? 0 : i - 1;
}
}
}
}
///
/// Comparison function should return -1 if left is less than right, 1 if left is greater than right, and 0 if they match.
///
public delegate int CompareFunc (T left, T right);
#endif
}
================================================
FILE: Assets/Game/Editor/BmfontMaker/BmBetterList.cs.meta
================================================
fileFormatVersion: 2
guid: d6ab7ca414bf6644983a7ca1041e1118
timeCreated: 1463752738
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/BmfontMaker/BmByteReader.cs
================================================
//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2015 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
using System.Text;
using System.Collections.Generic;
using System.IO;
///
/// MemoryStream.ReadLine has an interesting oddity: it doesn't always advance the stream's position by the correct amount:
/// http://social.msdn.microsoft.com/Forums/en-AU/Vsexpressvcs/thread/b8f7837b-e396-494e-88e1-30547fcf385f
/// Solution? Custom line reader with the added benefit of not having to use streams at all.
///
public class BmByteReader
{
byte[] mBuffer;
int mOffset = 0;
public BmByteReader (byte[] bytes) { mBuffer = bytes; }
public BmByteReader (TextAsset asset) { mBuffer = asset.bytes; }
///
/// Read the contents of the specified file and return a Byte Reader to work with.
///
static public BmByteReader Open (string path)
{
#if UNITY_EDITOR || (!UNITY_FLASH && !NETFX_CORE && !UNITY_WP8 && !UNITY_WP_8_1)
FileStream fs = File.OpenRead(path);
if (fs != null)
{
fs.Seek(0, SeekOrigin.End);
byte[] buffer = new byte[fs.Position];
fs.Seek(0, SeekOrigin.Begin);
fs.Read(buffer, 0, buffer.Length);
fs.Close();
return new BmByteReader(buffer);
}
#endif
return null;
}
///
/// Whether the buffer is readable.
///
public bool canRead { get { return (mBuffer != null && mOffset < mBuffer.Length); } }
///
/// Read a single line from the buffer.
///
static string ReadLine (byte[] buffer, int start, int count)
{
#if UNITY_FLASH
// Encoding.UTF8 is not supported in Flash :(
StringBuilder sb = new StringBuilder();
int max = start + count;
for (int i = start; i < max; ++i)
{
byte byte0 = buffer[i];
if ((byte0 & 128) == 0)
{
// If an UCS fits 7 bits, its coded as 0xxxxxxx. This makes ASCII character represented by themselves
sb.Append((char)byte0);
}
else if ((byte0 & 224) == 192)
{
// If an UCS fits 11 bits, it is coded as 110xxxxx 10xxxxxx
if (++i == count) break;
byte byte1 = buffer[i];
int ch = (byte0 & 31) << 6;
ch |= (byte1 & 63);
sb.Append((char)ch);
}
else if ((byte0 & 240) == 224)
{
// If an UCS fits 16 bits, it is coded as 1110xxxx 10xxxxxx 10xxxxxx
if (++i == count) break;
byte byte1 = buffer[i];
if (++i == count) break;
byte byte2 = buffer[i];
if (byte0 == 0xEF && byte1 == 0xBB && byte2 == 0xBF)
{
// Byte Order Mark -- generally the first 3 bytes in a Windows-saved UTF-8 file. Skip it.
}
else
{
int ch = (byte0 & 15) << 12;
ch |= (byte1 & 63) << 6;
ch |= (byte2 & 63);
sb.Append((char)ch);
}
}
else if ((byte0 & 248) == 240)
{
// If an UCS fits 21 bits, it is coded as 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
if (++i == count) break;
byte byte1 = buffer[i];
if (++i == count) break;
byte byte2 = buffer[i];
if (++i == count) break;
byte byte3 = buffer[i];
int ch = (byte0 & 7) << 18;
ch |= (byte1 & 63) << 12;
ch |= (byte2 & 63) << 6;
ch |= (byte3 & 63);
sb.Append((char)ch);
}
}
return sb.ToString();
#else
return Encoding.UTF8.GetString(buffer, start, count);
#endif
}
///
/// Read a single line from the buffer.
///
public string ReadLine () { return ReadLine(true); }
///
/// Read a single line from the buffer.
///
public string ReadLine (bool skipEmptyLines)
{
int max = mBuffer.Length;
// Skip empty characters
if (skipEmptyLines)
{
while (mOffset < max && mBuffer[mOffset] < 32) ++mOffset;
}
int end = mOffset;
if (end < max)
{
for (; ; )
{
if (end < max)
{
int ch = mBuffer[end++];
if (ch != '\n' && ch != '\r') continue;
}
else ++end;
string line = ReadLine(mBuffer, mOffset, end - mOffset - 1);
mOffset = end;
return line;
}
}
mOffset = max;
return null;
}
///
/// Assume that the entire file is a collection of key/value pairs.
///
public Dictionary ReadDictionary ()
{
Dictionary dict = new Dictionary();
char[] separator = new char[] { '=' };
while (canRead)
{
string line = ReadLine();
if (line == null) break;
if (line.StartsWith("//")) continue;
#if UNITY_FLASH
string[] split = line.Split(separator, System.StringSplitOptions.RemoveEmptyEntries);
#else
string[] split = line.Split(separator, 2, System.StringSplitOptions.RemoveEmptyEntries);
#endif
if (split.Length == 2)
{
string key = split[0].Trim();
string val = split[1].Trim().Replace("\\n", "\n");
dict[key] = val;
}
}
return dict;
}
static BmBetterList mTemp = new BmBetterList();
///
/// Read a single line of Comma-Separated Values from the file.
///
public BmBetterList ReadCSV ()
{
mTemp.Clear();
string line = "";
bool insideQuotes = false;
int wordStart = 0;
while (canRead)
{
if (insideQuotes)
{
string s = ReadLine(false);
if (s == null) return null;
s = s.Replace("\\n", "\n");
line += "\n" + s;
}
else
{
line = ReadLine(true);
if (line == null) return null;
line = line.Replace("\\n", "\n");
wordStart = 0;
}
for (int i = wordStart, imax = line.Length; i < imax; ++i)
{
char ch = line[i];
if (ch == ',')
{
if (!insideQuotes)
{
mTemp.Add(line.Substring(wordStart, i - wordStart));
wordStart = i + 1;
}
}
else if (ch == '"')
{
if (insideQuotes)
{
if (i + 1 >= imax)
{
mTemp.Add(line.Substring(wordStart, i - wordStart).Replace("\"\"", "\""));
return mTemp;
}
if (line[i + 1] != '"')
{
mTemp.Add(line.Substring(wordStart, i - wordStart).Replace("\"\"", "\""));
insideQuotes = false;
if (line[i + 1] == ',')
{
++i;
wordStart = i + 1;
}
}
else ++i;
}
else
{
wordStart = i + 1;
insideQuotes = true;
}
}
}
if (wordStart < line.Length)
{
if (insideQuotes) continue;
mTemp.Add(line.Substring(wordStart, line.Length - wordStart));
}
return mTemp;
}
return null;
}
}
================================================
FILE: Assets/Game/Editor/BmfontMaker/BmByteReader.cs.meta
================================================
fileFormatVersion: 2
guid: f40e2da786f71024e92246ddf360eb32
timeCreated: 1463752697
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/BmfontMaker/BmFontEditor.cs
================================================
using UnityEngine;
using UnityEditor;
public class BmFontEditor : EditorWindow
{
[MenuItem("Tools/BMFont Maker")]
static public void OpenBMFontMaker()
{
EditorWindow.GetWindow(false, "BMFont Maker", true).Show();
}
[SerializeField]
private Font targetFont;
[SerializeField]
private TextAsset fntData;
[SerializeField]
private Material fontMaterial;
[SerializeField]
private Texture2D fontTexture;
private BMFont bmFont = new BMFont();
public BmFontEditor()
{
}
void OnGUI()
{
targetFont = EditorGUILayout.ObjectField("Target Font", targetFont, typeof(Font), false) as Font;
fntData = EditorGUILayout.ObjectField("Fnt Data", fntData, typeof(TextAsset), false) as TextAsset;
fontMaterial = EditorGUILayout.ObjectField("Font Material", fontMaterial, typeof(Material), false) as Material;
fontTexture = EditorGUILayout.ObjectField("Font Texture", fontTexture, typeof(Texture2D), false) as Texture2D;
if (GUILayout.Button("Create BMFont"))
{
BMFontReader.Load(bmFont, fntData.name, fntData.bytes); // 借用NGUI封装的读取类
CharacterInfo[] characterInfo = new CharacterInfo[bmFont.glyphs.Count];
for (int i = 0; i < bmFont.glyphs.Count; i++)
{
BMGlyph bmInfo = bmFont.glyphs[i];
CharacterInfo info = new CharacterInfo();
info.index = bmInfo.index;
info.uv.x = (float)bmInfo.x / (float)bmFont.texWidth;
info.uv.y = 1 - (float)bmInfo.y / (float)bmFont.texHeight;
info.uv.width = (float)bmInfo.width / (float)bmFont.texWidth;
info.uv.height = -1f * (float)bmInfo.height / (float)bmFont.texHeight;
info.vert.x = 0;
info.vert.y = -(float)bmInfo.height;
info.vert.width = (float)bmInfo.width;
info.vert.height = (float)bmInfo.height;
info.width = (float)bmInfo.advance;
characterInfo[i] = info;
}
targetFont.characterInfo = characterInfo;
if (fontMaterial)
{
fontMaterial.mainTexture = fontTexture;
}
targetFont.material = fontMaterial;
fontMaterial.shader = Shader.Find("UI/Default");//这一行很关键,如果用standard的shader,放到Android手机上,第一次加载会很慢
Debug.Log("create font <" + targetFont.name + "> success");
Close();
}
}
}
================================================
FILE: Assets/Game/Editor/BmfontMaker/BmFontEditor.cs.meta
================================================
fileFormatVersion: 2
guid: 209ec617b615f1e45b6ff6819281ecec
timeCreated: 1470452693
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/BmfontMaker.meta
================================================
fileFormatVersion: 2
guid: be5b5ab2f2e32e64d870debcd5ccc7b2
folderAsset: yes
timeCreated: 1470552281
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/Helper.cs
================================================
using UnityEngine;
using UnityEngine.Events;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.IO;
using System.Text;
using System;
public class Helper
{
public static string RunCmd(string command, string args, string workDir)
{
//例Process
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = command; //确定程序名
p.StartInfo.Arguments = args; //确定程式命令行
p.StartInfo.WorkingDirectory = workDir; //工作目录
p.StartInfo.UseShellExecute = false; //Shell的使用
p.StartInfo.RedirectStandardInput = true; //重定向输入
p.StartInfo.RedirectStandardOutput = true; //重定向输出
p.StartInfo.RedirectStandardError = true; //重定向输出错误
p.StartInfo.CreateNoWindow = true; //设置置不显示示窗口
p.Start();
return p.StandardOutput.ReadToEnd(); //输出出流取得命令行结果果
}
public static void CopyDirectory(string sourceDirName, string destDirName)
{
try
{
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
File.SetAttributes(destDirName, File.GetAttributes(sourceDirName));
}
if (destDirName[destDirName.Length - 1] != Path.DirectorySeparatorChar)
destDirName = destDirName + Path.DirectorySeparatorChar;
string[] files = Directory.GetFiles(sourceDirName);
foreach (string file in files)
{
//if (File.Exists(destDirName + Path.GetFileName(file)))
// continue;
File.Copy(file, destDirName + Path.GetFileName(file), true);
File.SetAttributes(destDirName + Path.GetFileName(file), FileAttributes.Normal);
}
string[] dirs = Directory.GetDirectories(sourceDirName);
foreach (string dir in dirs)
{
CopyDirectory(dir, destDirName + Path.GetFileName(dir));
}
}
catch (System.Exception ex)
{
Debug.LogError(ex.Message);
}
}
public static void forEachHandle(string path, List matchExts, UnityAction handle)
{
string[] names = Directory.GetFiles(path);
string[] dirs = Directory.GetDirectories(path);
foreach (string filename in names)
{
if (filename.EndsWith("meta") || string.IsNullOrEmpty(Path.GetFileNameWithoutExtension(filename)))
continue;
string[] name_splits = filename.Split('.');
string ext = name_splits[name_splits.Length - 1];
if (matchExts == null)
{
handle.Invoke(filename);
}
else if (matchExts.Contains(ext))
{
handle.Invoke(filename);
}
}
foreach (string dir in dirs)
{
forEachHandle(dir, matchExts, handle);
}
}
}
================================================
FILE: Assets/Game/Editor/Helper.cs.meta
================================================
fileFormatVersion: 2
guid: 196a3b7fa2c6e604c89974a2810ade0a
timeCreated: 1474773601
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/I18nExporter/I18nExporter.cs
================================================
using UnityEngine;
using System.Collections.Generic;
using UnityEditor;
using System.IO;
using System.Text;
// 国际化 导出
public class I18nExporter : Editor
{
private static Dictionary> _markDatas;
private static Dictionary _markFiles;
private static List ignorePath;
private static int _markId;
private static string _outputPath;
[MenuItem("Tools/I18n Export")]
public static void Run()
{
Load();
Scan();
Export();
}
private static void Load()
{
_outputPath = Application.dataPath + "/Game/@Lua/Game/Common/i18n.lua";
ignorePath = new List()
{
"i18n.lua"
};
if (File.Exists(_outputPath))
{
_markDatas = new Dictionary>();
_markFiles = new Dictionary();
StreamReader sr = new StreamReader(_outputPath, Encoding.UTF8);
string line;
Dictionary markDic = null;
while ((line = sr.ReadLine()) != null)
{
if (line.StartsWith("i18n["))
{
int startIdx = line.LastIndexOf("i18n[\"") + 6;
int endIdx = line.IndexOf("\"]");
string key = line.Substring(startIdx, endIdx - startIdx);
startIdx = line.LastIndexOf("= \"") + 3;
endIdx = line.LastIndexOf("\"");
string value = line.Substring(startIdx, endIdx - startIdx);
markDic.Add(value,string.Format("i18n[\"{0}\"]",key));
_markId = Mathf.Max(_markId, int.Parse(key));
}
else if (line.StartsWith("--# "))
{
int startIdx = line.IndexOf("--# ") + 4;
int endIdx = line.LastIndexOf(".lua") + 4;
string fileName = line.Substring(startIdx, endIdx - startIdx);
_markDatas.Add(fileName, new Dictionary());
markDic = _markDatas[fileName];
}
}
sr.Close();
sr.Dispose();
}
else
{
_markDatas = new Dictionary>();
_markFiles = new Dictionary();
_markId = 1000;
}
}
private static void Scan()
{
Helper.forEachHandle(Application.dataPath + "/Game/@Lua", new List { "lua" }, (string filePath) =>
{
string basePath = Path.GetFileName(filePath);
if (ignorePath.Contains(basePath)) return;
Dictionary markDic = null; //标记字典
if (!_markDatas.ContainsKey(basePath))
{
markDic = new Dictionary();
_markDatas.Add(basePath, markDic);
}
else
{
markDic = _markDatas[basePath];
}
using (StreamReader sr = new StreamReader(filePath, Encoding.UTF8))
{
string line;
StringBuilder content = new StringBuilder();
while ((line = sr.ReadLine()) != null)
{
StringBuilder newLine = new StringBuilder();
StringBuilder markKey = new StringBuilder();
bool isMarking = false;
char[] chars = line.ToCharArray();
for (int i = 0; i < chars.Length; i++)
{
char c = chars[i];
bool _isReset = false;
if (c == '"' && chars[i - 1] != '\\')
{
isMarking = !isMarking;
if (isMarking == false) //结束标记
{
string markKeyString = markKey.ToString();
if (isChinese(markKeyString))
{
string holder = getHolder(basePath, markKeyString);
if (!markDic.ContainsKey(markKeyString))
markDic.Add(markKeyString, holder);
newLine.Append(holder);
_isReset = true;
}
else //不是中文
{
newLine.Append('"').Append(markKeyString);
}
markKey = new StringBuilder(); //清空
}
}
else
{
if (isMarking)
{
markKey.Append(c);
}
}
if (!isMarking && !_isReset)
{
newLine.Append(c);
}
}
content.Append(newLine).Append('\n');
}
if (markDic.Count > 0)
{
_markFiles.Add(filePath, content.ToString());
}
sr.Close();
}
});
}
private static void Export()
{
StringBuilder i18n = new StringBuilder();
i18n.Append("local i18n = {}\n");
foreach (string fileName in _markDatas.Keys)
{
if(_markDatas[fileName].Count > 0)
{
i18n.AppendFormat("--# {0}\n", fileName);
}
foreach(string chinese in _markDatas[fileName].Keys)
{
i18n.AppendFormat("{0} = \"{1}\"\n", _markDatas[fileName][chinese], chinese);
}
}
i18n.Append("\nLDeclare(\"i18n\", i18n)\n");
i18n.Append("return i18n\n");
using (FileStream fs = new FileStream(_outputPath, FileMode.Create))
{
StreamWriter sw = new StreamWriter(fs);
sw.Write(i18n.ToString());
sw.Flush();
sw.Close();
fs.Close();
}
foreach (string filePath in _markFiles.Keys)
{
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
StreamWriter sw = new StreamWriter(fs);
sw.Write(_markFiles[filePath]);
sw.Flush();
sw.Close();
fs.Close();
}
}
AssetDatabase.Refresh();
Debug.Log("导出完成 " + _outputPath);
}
private static string getHolder(string fileName ,string chinese)
{
Dictionary dic = _markDatas[fileName];
if (!dic.ContainsKey(chinese))
{
_markId++;
dic.Add(chinese,string.Format("i18n[\"{0}\"]",_markId.ToString()));
}
return dic[chinese];
}
private static bool isChinese(string text)
{
bool hasChinese = false;
char[] c = text.ToCharArray();
int len = c.Length;
for (int i = 0; i < len; i++)
{
if (c[i] >= 0x4e00 && c[i] <= 0x9fbb)
{
hasChinese = true;
break;
}
}
return hasChinese;
}
}
================================================
FILE: Assets/Game/Editor/I18nExporter/I18nExporter.cs.meta
================================================
fileFormatVersion: 2
guid: c2b26f6664b1b7945aa35eb2065410f4
timeCreated: 1479285206
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/I18nExporter.meta
================================================
fileFormatVersion: 2
guid: 9c4941af0a98cb545b673822c2777637
folderAsset: yes
timeCreated: 1479526088
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/MakeDebugFile.cs
================================================
using UnityEngine;
using UnityEngine.Events;
using System.Collections.Generic;
using UnityEditor;
using System.IO;
using System;
public class MakeDebugFile : Editor
{
public static string luajitPath = Application.dataPath + "/../build/luajit-2.0.4/src";
//[MenuItem("Tools/Copy")]
public static void CopyLuaTxt() {
string fromUrl = Application.dataPath + "/Game/@Lua";
string toUrl = Application.dataPath + "/Game/Resources/@Lua";
AssetDatabase.DeleteAsset ("Assets/Game/Resources/@Lua");
Directory.CreateDirectory(toUrl);
CopyAndChangeDirectory(fromUrl, toUrl,new List{".lua"});
AssetDatabase.Refresh();
Debug.Log("copy finish:" + toUrl);
}
//[MenuItem("Tools/test")]
//public static void Test()
//{
// TextAsset textAsset = AssetDatabase.LoadAssetAtPath("Assets/test.txt");
// byte[] encrypts = LUtil.AESEncrypt(textAsset.bytes,LGameConfig.EncryptKey32,"1234567890123456");
// byte[] content = LUtil.AESDecrypt(encrypts, LGameConfig.EncryptKey32, "1234567890123456");
// Debug.Log(System.Text.Encoding.UTF8.GetString(content));
//}
[MenuItem("Tools/Edit Atlas Suffix")]
public static void EditAtlasSuffix()
{
string basePath = Application.dataPath + "/Game/Resources/Atlas";
Helper.forEachHandle(basePath, new List{"txt","tpsheet"}, (string path) =>
{
string[] name_splits = path.Split('.');
string ext = name_splits[name_splits.Length - 1];
if(ext == "tpsheet")
{
File.Move(name_splits[0] + ".tpsheet", name_splits[0] + ".txt");
}
else
{
File.Move(name_splits[0] + ".txt", name_splits[0] + ".tpsheet");
}
});
AssetDatabase.Refresh();
Debug.Log("Atlas后缀修改完成");
}
public static void CopyAndChangeDirectory(string sourceDirName, string destDirName,List exts)
{
try
{
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
File.SetAttributes(destDirName, File.GetAttributes(sourceDirName));
}
if (destDirName[destDirName.Length - 1] != Path.DirectorySeparatorChar)
destDirName = destDirName + Path.DirectorySeparatorChar;
string[] files = Directory.GetFiles(sourceDirName);
foreach (string file in files)
{
//if (File.Exists(destDirName + Path.GetFileName(file)))
// continue;
if (file.EndsWith("meta"))
continue;
string destFileName = destDirName + Path.GetFileName(file);
if (exts.Contains(Path.GetExtension(file)))
{
if (LGameConfig.GetInstance().isEncrypt)
{
destFileName = destDirName + Path.GetFileNameWithoutExtension(file) + ".bytes";
//luajit
Helper.RunCmd(luajitPath + "/luajit.exe", string.Format("-b {0} {1}", file, destFileName), luajitPath);
////encrypt
//FileStream fr = new FileStream(destFileName, FileMode.Open);
//byte[] encryptStrs = new byte[fr.Length];
//fr.Read(encryptStrs, 0, encryptStrs.Length);
//fr.Close();
//FileStream fs = new FileStream(destFileName, FileMode.Create);
//fs.Write(encryptStrs, 0, encryptStrs.Length);
//fs.Flush();
//fs.Close();
}
else
{
destFileName = destDirName + Path.GetFileNameWithoutExtension(file) + ".txt";
File.Copy(file, destFileName, true);
}
}
else
{
File.Copy(file, destFileName, true);
}
File.SetAttributes(destFileName, FileAttributes.Normal);
}
string[] dirs = Directory.GetDirectories(sourceDirName);
foreach (string dir in dirs)
{
CopyAndChangeDirectory(dir, destDirName + Path.GetFileName(dir),exts);
}
}
catch (Exception ex)
{
Debug.Log(ex.Message);
}
}
}
================================================
FILE: Assets/Game/Editor/MakeDebugFile.cs.meta
================================================
fileFormatVersion: 2
guid: 5bb958e901dce9145a21802afa3038c0
timeCreated: 1470478793
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/TexturePackerImporter/SettingsTexturePackerImporter.txt
================================================
version: 2
importPivots: 1
tpsheetFileNames:
- Assets/codeandweb.com/Example/SpriteSheet/sprites.tpsheet
textureFileNames:
- Assets/codeandweb.com/Example/SpriteSheet/sprites.png
normalmapFileNames:
- Assets/codeandweb.com/Example/SpriteSheet/sprites_n.png
================================================
FILE: Assets/Game/Editor/TexturePackerImporter/SettingsTexturePackerImporter.txt.meta
================================================
fileFormatVersion: 2
guid: df6f73f5fa571dd48b8c6bd40825fa11
timeCreated: 1475288740
licenseType: Free
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/TexturePackerImporter/TexturePackerImporter.cs
================================================
using UnityEngine;
using UnityEditor;
using System.IO;
using System.Text;
using System.Collections.Generic;
public class TexturePackerImporter : Editor {
[MenuItem("Tools/Atlas Build")]
public static void Build()
{
CreateAtlas();
MakeSprites();
}
protected static void CreateAtlas()
{
//选择并设置TP命令行的参数和参数值
string args = " --sheet {0}.png --data {1}.txt --format unity-texture2d --trim-mode None --pack-mode Best --algorithm MaxRects --max-size 2048 --size-constraints POT --disable-rotation --scale 1 {2}";
string inputPath = string.Format("{0}/Game/Images", Application.dataPath);//小图目录
string[] paths = Directory.GetDirectories(inputPath);
foreach(string path in paths)
{
StringBuilder sb = new StringBuilder("");
string[] files = Directory.GetFiles(path);
foreach(string file in files)
{
if(file.EndsWith(".png") || file.EndsWith(".jpg"))
{
sb.Append(file);
sb.Append(" ");
}
}
string name = Path.GetFileName(path);
string sheetPath = string.Format("{0}/Game/Resources/Atlas/{1}", Application.dataPath, name);//用TP打包好的图集存放目录
Helper.RunCmd("D:/TexturePacker/bin/TexturePacker.exe", string.Format(args, sheetPath, sheetPath, sb.ToString()), "");
Debug.Log("生成图集:" + sheetPath);
}
AssetDatabase.Refresh();
}
protected static void MakeSprites()
{
string atlasPath = string.Format("{0}/Game/Resources/Atlas", Application.dataPath);
string[] files = Directory.GetFiles(atlasPath);
foreach(string file in files)
{
if (file.EndsWith(".txt"))
{
Texture2D texture = AssetDatabase.LoadAssetAtPath(file.Replace(Application.dataPath, "Assets").Split('.')[0] + ".png");
TextAsset textAsset = AssetDatabase.LoadAssetAtPath(file.Replace(Application.dataPath, "Assets"));
string[] lineArray = textAsset.text.Split(new char[] { '\n' });
Dictionary tIpterMap = new Dictionary();
TextureImporter asetImp = GetTextureIpter(texture);
SaveBoreder(tIpterMap, asetImp);
List metaDatas = new List();
for (int i = 0; i < lineArray.Length; i++)
{
if ((lineArray[i].IndexOf('#') == -1) && (lineArray[i].IndexOf(':') == -1))
{
lineArray[i] = lineArray[i].Replace("\r", "");
if ((lineArray[i] != ""))
{
string[] str = lineArray[i].Split(new char[] { ';' });
SpriteMetaData metaData = new SpriteMetaData();
metaData.name = str[0];
metaData.rect = new Rect(
float.Parse(str[1]),
float.Parse(str[2]),
float.Parse(str[3]),
float.Parse(str[4]));
metaData.pivot = new Vector2(0.5f, 0.5f);
if (tIpterMap.ContainsKey(metaData.name)) //保存九宫格数据
{
metaData.border = tIpterMap[metaData.name];
}
metaDatas.Add(metaData);
}
}
}
asetImp.spritesheet = metaDatas.ToArray();
asetImp.textureType = TextureImporterType.Sprite;
asetImp.spriteImportMode = SpriteImportMode.Multiple;
asetImp.mipmapEnabled = false;
asetImp.SaveAndReimport();
AssetDatabase.DeleteAsset(file.Replace(Application.dataPath, "Assets"));
}
}
}
//如果这张图集已经拉好了9宫格,需要先保存起来
protected static void SaveBoreder(Dictionary tIpterMap, TextureImporter tIpter)
{
for (int i = 0, size = tIpter.spritesheet.Length; i < size; i++)
{
tIpterMap.Add(tIpter.spritesheet[i].name, tIpter.spritesheet[i].border);
}
}
protected static TextureImporter GetTextureIpter(Texture2D texture)
{
TextureImporter textureIpter = null;
string impPath = AssetDatabase.GetAssetPath(texture);
textureIpter = TextureImporter.GetAtPath(impPath) as TextureImporter;
return textureIpter;
}
}
================================================
FILE: Assets/Game/Editor/TexturePackerImporter/TexturePackerImporter.cs.meta
================================================
fileFormatVersion: 2
guid: 1164d51e0c6d5ec4cabeb4c8a1ad7399
timeCreated: 1475288614
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor/TexturePackerImporter.meta
================================================
fileFormatVersion: 2
guid: 5e7cbf6a101751b46a61ec6fcdaf74a8
folderAsset: yes
timeCreated: 1470452684
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Editor.meta
================================================
fileFormatVersion: 2
guid: cbec7ab89fb11e547abc9b009e8ffef3
folderAsset: yes
timeCreated: 1451462546
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/common/ctlv_bg.png.meta
================================================
fileFormatVersion: 2
guid: d8d4e984467472f41ba638b478aeff80
timeCreated: 1475290841
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/common/ctlv_joy.png.meta
================================================
fileFormatVersion: 2
guid: ad8ffcca49584c04cab19fe55e06f829
timeCreated: 1475290841
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/common/img_cat.png.meta
================================================
fileFormatVersion: 2
guid: 9ab0257ab97f5e24e8e941e0db884c2b
timeCreated: 1475290841
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/common/progress_bar.jpg.meta
================================================
fileFormatVersion: 2
guid: df8f3cb38bf73464e8dd48c7eddebf7f
timeCreated: 1478518828
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: -1
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/common.meta
================================================
fileFormatVersion: 2
guid: b2b3ac64d2468e840890d907dac9674a
folderAsset: yes
timeCreated: 1475290770
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/face/0101.png.meta
================================================
fileFormatVersion: 2
guid: 27b5249286dedcb4f8472da72324028f
timeCreated: 1475290651
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/face/0102.png.meta
================================================
fileFormatVersion: 2
guid: 48feb112c2d43c343a11a6969b8d511f
timeCreated: 1475290651
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/face/0103.png.meta
================================================
fileFormatVersion: 2
guid: 769bafe28f6138946b8b96ba364d2d10
timeCreated: 1475290651
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/face/0201.png.meta
================================================
fileFormatVersion: 2
guid: ff9c9677a194d3f46b85fd3289ab6f6f
timeCreated: 1475290748
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/face/0202.png.meta
================================================
fileFormatVersion: 2
guid: 90c4c47701f497847899ee4acf198361
timeCreated: 1475290748
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/face/0203.png.meta
================================================
fileFormatVersion: 2
guid: 1bfa89fb2f4b81b46a8b18d31c50d2b2
timeCreated: 1475290747
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/face.meta
================================================
fileFormatVersion: 2
guid: d49f9a80226fb2d43889709c0ddb1998
folderAsset: yes
timeCreated: 1475290679
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/+.png.meta
================================================
fileFormatVersion: 2
guid: ee4d297ad55eb6642be52b8ad7ce597f
timeCreated: 1475288826
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/-.png.meta
================================================
fileFormatVersion: 2
guid: b73574b7669bab942b875279e4e01fd4
timeCreated: 1475288826
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/0.png.meta
================================================
fileFormatVersion: 2
guid: 448be106794026d4891045dead0b0c10
timeCreated: 1475288826
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/1.png.meta
================================================
fileFormatVersion: 2
guid: bb2a46b41f14fd043b2a15cc3afa89a5
timeCreated: 1475288826
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/2.png.meta
================================================
fileFormatVersion: 2
guid: a920a31557130fd4392ed11cc4f5cde4
timeCreated: 1475288826
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/3.png.meta
================================================
fileFormatVersion: 2
guid: f78572fbf789e764ab689fdb9a6678a5
timeCreated: 1475288827
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/4.png.meta
================================================
fileFormatVersion: 2
guid: effdadaa3f670864aa1a1ad924b2c84c
timeCreated: 1475288827
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/5.png.meta
================================================
fileFormatVersion: 2
guid: bedb6fccbfc4ada4795c4974b5e1d5d1
timeCreated: 1475288826
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/6.png.meta
================================================
fileFormatVersion: 2
guid: 0137ba463e7d2af4185c175cbb5d7ef9
timeCreated: 1475288825
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/7.png.meta
================================================
fileFormatVersion: 2
guid: 007f51b12131499408d8eb1e966f4a13
timeCreated: 1475288824
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/8.png.meta
================================================
fileFormatVersion: 2
guid: 1e442073bd5a83540831526cf6b8ffba
timeCreated: 1475288825
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num/9.png.meta
================================================
fileFormatVersion: 2
guid: 3ea6ceaf13333284abeb18992f0d00da
timeCreated: 1475288825
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images/num.meta
================================================
fileFormatVersion: 2
guid: 61bceac2d08e72a43927a6ca2b73ceda
folderAsset: yes
timeCreated: 1475288820
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Images.meta
================================================
fileFormatVersion: 2
guid: 5e1f5b75292887f448e6bc8a4d02f65d
folderAsset: yes
timeCreated: 1475288778
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/CubeMap.mat.meta
================================================
fileFormatVersion: 2
guid: d57775a52c3b77a4fa822d2cbe1b6e28
timeCreated: 1470559566
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/CubeMap.shader
================================================
Shader "Example/CubeMap" {
Properties{
_MainTex("Texture",2D) = "white" {}
_BumpMap("Bumpmap",2D) = "bump" {}
_Cube("Cubemap",CUBE) = "" {}
}
SubShader{
Tags {"RenderType"="Opaque"}
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float2 uv_BumpMap;
float2 uv_MainTex;
float3 worldRefl;
INTERNAL_DATA
};
sampler2D _MainTex;
sampler2D _BumpMap;
samplerCUBE _Cube;
void surf(Input IN, inout SurfaceOutput o) {
o.Albedo = tex2D(_MainTex, IN.uv_MainTex) * 0.5;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
o.Emission = texCUBE(_Cube, WorldReflectionVector(IN,o.Normal));
}
ENDCG
}
Fallback "Diffuse"
}
================================================
FILE: Assets/Game/Models/CubeMap.shader.meta
================================================
fileFormatVersion: 2
guid: df77af1b98a2cfc4faf9c1f500bf7f4e
timeCreated: 1470559566
licenseType: Free
ShaderImporter:
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Materials/TeddyBear_color.mat.meta
================================================
fileFormatVersion: 2
guid: 5170bca6033460448afb5938543ca8b1
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Materials/TeddyBear_color.tga.meta
================================================
fileFormatVersion: 2
guid: 13ec991b6199ff54085108d33af49c79
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 256
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Materials/Teddy_DIF.mat.meta
================================================
fileFormatVersion: 2
guid: ed769c2e0ccae0f4c95e3494f3bdbecf
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Materials/Teddy_DIF.psd.meta
================================================
fileFormatVersion: 2
guid: e03df07cc0e635c449f2d796328840ad
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 256
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Materials/Teddy_Eye.mat.meta
================================================
fileFormatVersion: 2
guid: f5b7e16e3bc986144bb38e058ac7516b
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Materials/Teddy_Eye.psd.meta
================================================
fileFormatVersion: 2
guid: d7540a3a54457354bb75b58f978f763c
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 64
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Materials.meta
================================================
fileFormatVersion: 2
guid: 5fe267c58209a394b8d6b55e791e2051
folderAsset: yes
timeCreated: 1451461408
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Teddy.controller.meta
================================================
fileFormatVersion: 2
guid: 17ca7bb459b01f2489da46de7962d709
timeCreated: 1451883534
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/Teddy.fbx.meta
================================================
fileFormatVersion: 2
guid: 5eb27fd0b014c9847ad0ce07b511ac21
timeCreated: 1451461409
licenseType: Free
ModelImporter:
serializedVersion: 18
fileIDToRecycleName:
100000: Bip001
100002: Bip001 Footsteps
100004: Bip001 Head
100006: Bip001 HeadNub
100008: Bip001 L Calf
100010: Bip001 L Clavicle
100012: Bip001 L Finger0
100014: Bip001 L Finger0Nub
100016: Bip001 L Foot
100018: Bip001 L Forearm
100020: Bip001 L Hand
100022: Bip001 L Thigh
100024: Bip001 L Toe0
100026: Bip001 L Toe01
100028: Bip001 L Toe02
100030: Bip001 L Toe0Nub
100032: Bip001 L UpperArm
100034: Bip001 Neck
100036: Bip001 Pelvis
100038: Bip001 R Calf
100040: Bip001 R Clavicle
100042: Bip001 R Finger0
100044: Bip001 R Finger0Nub
100046: Bip001 R Foot
100048: Bip001 R Forearm
100050: Bip001 R Hand
100052: Bip001 R Thigh
100054: Bip001 R Toe0
100056: Bip001 R Toe01
100058: Bip001 R Toe02
100060: Bip001 R Toe0Nub
100062: Bip001 R UpperArm
100064: Bip001 Spine
100066: Bip001 Spine1
100068: Bip001 Spine2
100070: Bip001 Spine3
100072: Eye_Left
100074: Eye_Right
100076: //RootNode
100078: Teddy_Body
400000: Bip001
400002: Bip001 Footsteps
400004: Bip001 Head
400006: Bip001 HeadNub
400008: Bip001 L Calf
400010: Bip001 L Clavicle
400012: Bip001 L Finger0
400014: Bip001 L Finger0Nub
400016: Bip001 L Foot
400018: Bip001 L Forearm
400020: Bip001 L Hand
400022: Bip001 L Thigh
400024: Bip001 L Toe0
400026: Bip001 L Toe01
400028: Bip001 L Toe02
400030: Bip001 L Toe0Nub
400032: Bip001 L UpperArm
400034: Bip001 Neck
400036: Bip001 Pelvis
400038: Bip001 R Calf
400040: Bip001 R Clavicle
400042: Bip001 R Finger0
400044: Bip001 R Finger0Nub
400046: Bip001 R Foot
400048: Bip001 R Forearm
400050: Bip001 R Hand
400052: Bip001 R Thigh
400054: Bip001 R Toe0
400056: Bip001 R Toe01
400058: Bip001 R Toe02
400060: Bip001 R Toe0Nub
400062: Bip001 R UpperArm
400064: Bip001 Spine
400066: Bip001 Spine1
400068: Bip001 Spine2
400070: Bip001 Spine3
400072: Eye_Left
400074: Eye_Right
400076: //RootNode
400078: Teddy_Body
4300000: Eye_Left
4300002: Eye_Right
4300004: Teddy_Body
7400000: run
7400002: atk
7400004: idle
9500000: //RootNode
13700000: Eye_Left
13700002: Eye_Right
13700004: Teddy_Body
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
optimizeGameObjects: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
animationCompression: 1
animationRotationError: .5
animationPositionError: .5
animationScaleError: .5
animationWrapMode: 0
extraExposedTransformPaths: []
clipAnimations:
- serializedVersion: 16
name: run
takeName: Take 001
firstFrame: 0
lastFrame: 25
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask:
- path:
weight: 1
- path: Bip001
weight: 1
- path: Bip001/Bip001 Footsteps
weight: 1
- path: Bip001/Bip001 Pelvis
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01/Bip001 L Toe02
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01/Bip001 L Toe02/Bip001 L Toe0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01/Bip001 R Toe02
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01/Bip001 R Toe02/Bip001 R Toe0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 Head
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 Head/Bip001 HeadNub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand/Bip001 L Finger0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand/Bip001 L Finger0/Bip001 L Finger0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand/Bip001 R Finger0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand/Bip001 R Finger0/Bip001 R Finger0Nub
weight: 1
- path: Eye_Left
weight: 1
- path: Eye_Right
weight: 1
- path: Teddy_Body
weight: 1
maskType: 0
maskSource: {instanceID: 0}
- serializedVersion: 16
name: atk
takeName: Take 001
firstFrame: 25
lastFrame: 60
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask:
- path:
weight: 1
- path: Bip001
weight: 1
- path: Bip001/Bip001 Footsteps
weight: 1
- path: Bip001/Bip001 Pelvis
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01/Bip001 L Toe02
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01/Bip001 L Toe02/Bip001 L Toe0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01/Bip001 R Toe02
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01/Bip001 R Toe02/Bip001 R Toe0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 Head
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 Head/Bip001 HeadNub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand/Bip001 L Finger0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand/Bip001 L Finger0/Bip001 L Finger0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand/Bip001 R Finger0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand/Bip001 R Finger0/Bip001 R Finger0Nub
weight: 1
- path: Eye_Left
weight: 1
- path: Eye_Right
weight: 1
- path: Teddy_Body
weight: 1
maskType: 0
maskSource: {instanceID: 0}
- serializedVersion: 16
name: idle
takeName: Take 001
firstFrame: 60
lastFrame: 75
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask:
- path:
weight: 1
- path: Bip001
weight: 1
- path: Bip001/Bip001 Footsteps
weight: 1
- path: Bip001/Bip001 Pelvis
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01/Bip001 L Toe02
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 L Thigh/Bip001 L Calf/Bip001
L Foot/Bip001 L Toe0/Bip001 L Toe01/Bip001 L Toe02/Bip001 L Toe0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01/Bip001 R Toe02
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 R Thigh/Bip001 R Calf/Bip001
R Foot/Bip001 R Toe0/Bip001 R Toe01/Bip001 R Toe02/Bip001 R Toe0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 Head
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 Head/Bip001 HeadNub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand/Bip001 L Finger0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 L Clavicle/Bip001 L UpperArm/Bip001 L Forearm/Bip001
L Hand/Bip001 L Finger0/Bip001 L Finger0Nub
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand/Bip001 R Finger0
weight: 1
- path: Bip001/Bip001 Pelvis/Bip001 Spine/Bip001 Spine1/Bip001 Spine2/Bip001
Spine3/Bip001 Neck/Bip001 R Clavicle/Bip001 R UpperArm/Bip001 R Forearm/Bip001
R Hand/Bip001 R Finger0/Bip001 R Finger0Nub
weight: 1
- path: Eye_Left
weight: 1
- path: Eye_Right
weight: 1
- path: Teddy_Body
weight: 1
maskType: 0
maskSource: {instanceID: 0}
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 100
meshCompression: 0
addColliders: 0
importBlendShapes: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
splitTangentsAcrossUV: 1
normalImportMode: 0
tangentImportMode: 1
importAnimation: 1
copyAvatar: 0
humanDescription:
human: []
skeleton: []
armTwist: .5
foreArmTwist: .5
upperLegTwist: .5
legTwist: .5
armStretch: .0500000007
legStretch: .0500000007
feetSpacing: 0
rootMotionBoneName:
hasTranslationDoF: 0
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 2
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy/TeddyBear.fbx.meta
================================================
fileFormatVersion: 2
guid: 51305fd23db2d994d9ee372ceac378c3
timeCreated: 1451461409
licenseType: Free
ModelImporter:
serializedVersion: 18
fileIDToRecycleName:
100000: ChestJoint01
100002: HeadJoint01
100004: HipJoint01
100006: Left_AnkleJoint01
100008: Left_ArmJoint01
100010: Left_ElbowJoint01
100012: Left_KneeJoint01
100014: Left_ShoulderJoint01
100016: Left_ThighJoint01
100018: Left_ToeJoint01
100020: Left_WristJoint01
100022: Right_AnkleJoint01
100024: Right_ArmJoint01
100026: Right_ElbowJoint01
100028: Right_KneeJoint01
100030: Right_ShoulderJoint01
100032: Right_ThighJoint01
100034: Right_ToeJoint01
100036: Right_WristJoint01
100038: RootJoint01
100040: Teddy_Bear
100042: //RootNode
400000: ChestJoint01
400002: HeadJoint01
400004: HipJoint01
400006: Left_AnkleJoint01
400008: Left_ArmJoint01
400010: Left_ElbowJoint01
400012: Left_KneeJoint01
400014: Left_ShoulderJoint01
400016: Left_ThighJoint01
400018: Left_ToeJoint01
400020: Left_WristJoint01
400022: Right_AnkleJoint01
400024: Right_ArmJoint01
400026: Right_ElbowJoint01
400028: Right_KneeJoint01
400030: Right_ShoulderJoint01
400032: Right_ThighJoint01
400034: Right_ToeJoint01
400036: Right_WristJoint01
400038: RootJoint01
400040: Teddy_Bear
400042: //RootNode
4300000: Teddy_Bear
9500000: //RootNode
13700000: Teddy_Bear
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
optimizeGameObjects: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
animationCompression: 1
animationRotationError: .5
animationPositionError: .5
animationScaleError: .5
animationWrapMode: 0
extraExposedTransformPaths: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
importBlendShapes: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
splitTangentsAcrossUV: 1
normalImportMode: 0
tangentImportMode: 1
importAnimation: 1
copyAvatar: 0
humanDescription:
human: []
skeleton: []
armTwist: .5
foreArmTwist: .5
upperLegTwist: .5
legTwist: .5
armStretch: .0500000007
legStretch: .0500000007
feetSpacing: 0
rootMotionBoneName:
hasTranslationDoF: 0
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 2
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/Teddy.meta
================================================
fileFormatVersion: 2
guid: a66a4f61606a24dd3816d8e90d3a4c84
folderAsset: yes
timeCreated: 1474243881
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models/cubemap.jpg.meta
================================================
fileFormatVersion: 2
guid: 879a814d4a496da44ade1bc4d510e583
timeCreated: 1470559565
licenseType: Free
TextureImporter:
fileIDToRecycleName:
8900000: generatedCubemap
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: 1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: 3
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Models.meta
================================================
fileFormatVersion: 2
guid: 2fe00afb39194574f811581265ac548e
folderAsset: yes
timeCreated: 1470558010
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Atlas/common.png.meta
================================================
fileFormatVersion: 2
guid: 70d5c8ff6242c9b4eb6cb9c65da6ffec
timeCreated: 1479526118
licenseType: Free
TextureImporter:
fileIDToRecycleName:
21300000: ctlv_bg
21300002: ctlv_joy
21300004: img_cat
21300006: progress_bar
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: ctlv_bg
rect:
serializedVersion: 2
x: 2
y: 486
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: ctlv_joy
rect:
serializedVersion: 2
x: 444
y: 970
width: 52
height: 52
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: img_cat
rect:
serializedVersion: 2
x: 2
y: 616
width: 440
height: 406
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: progress_bar
rect:
serializedVersion: 2
x: 444
y: 927
width: 17
height: 41
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Atlas/face.png.meta
================================================
fileFormatVersion: 2
guid: 5bf4e6476f9fdb540aa7b291191d6902
timeCreated: 1479526119
licenseType: Free
TextureImporter:
fileIDToRecycleName:
21300000: 0101
21300002: 0102
21300004: 0103
21300006: 0201
21300008: 0202
21300010: 0203
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: 0101
rect:
serializedVersion: 2
x: 43
y: 89
width: 38
height: 37
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 0102
rect:
serializedVersion: 2
x: 42
y: 48
width: 38
height: 37
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 0103
rect:
serializedVersion: 2
x: 41
y: 7
width: 38
height: 37
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 0201
rect:
serializedVersion: 2
x: 2
y: 5
width: 37
height: 39
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 0202
rect:
serializedVersion: 2
x: 2
y: 46
width: 38
height: 39
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 0203
rect:
serializedVersion: 2
x: 2
y: 87
width: 39
height: 39
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Atlas/num.png.meta
================================================
fileFormatVersion: 2
guid: 205b5b726328cb34e85eafe453d86ae7
timeCreated: 1479526119
licenseType: Free
TextureImporter:
fileIDToRecycleName:
21300000: +
21300002: '-'
21300004: 0
21300006: 1
21300008: 2
21300010: 3
21300012: 4
21300014: 5
21300016: 6
21300018: 7
21300020: 8
21300022: 9
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 0
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
buildTargetSettings: []
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: +
rect:
serializedVersion: 2
x: 45
y: 106
width: 42
height: 42
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: '-'
rect:
serializedVersion: 2
x: 2
y: 23
width: 39
height: 20
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 0
rect:
serializedVersion: 2
x: 45
y: 150
width: 40
height: 51
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 1
rect:
serializedVersion: 2
x: 87
y: 154
width: 31
height: 49
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 2
rect:
serializedVersion: 2
x: 2
y: 45
width: 43
height: 50
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 3
rect:
serializedVersion: 2
x: 2
y: 97
width: 41
height: 51
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 4
rect:
serializedVersion: 2
x: 47
y: 3
width: 41
height: 49
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 5
rect:
serializedVersion: 2
x: 47
y: 54
width: 40
height: 50
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 6
rect:
serializedVersion: 2
x: 45
y: 203
width: 40
height: 51
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 7
rect:
serializedVersion: 2
x: 87
y: 205
width: 37
height: 49
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 8
rect:
serializedVersion: 2
x: 2
y: 150
width: 41
height: 51
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: 9
rect:
serializedVersion: 2
x: 2
y: 203
width: 41
height: 51
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Atlas.meta
================================================
fileFormatVersion: 2
guid: 1234bb5c43cd5a043a28fd3a9b0be90f
folderAsset: yes
timeCreated: 1470452684
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/dungeon01.mp3.meta
================================================
fileFormatVersion: 2
guid: 8dbd1e03c988b466b852e3c213eeb461
timeCreated: 1473296946
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/dungeon02.mp3.meta
================================================
fileFormatVersion: 2
guid: da5b1bf15a14c46ee871f8e12d327142
timeCreated: 1473296947
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect2.mp3.meta
================================================
fileFormatVersion: 2
guid: 319014ba08d754385bdd849aa9a29567
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_bombPattern.mp3.meta
================================================
fileFormatVersion: 2
guid: 0ebb5d2a52b5f42e5a7249e415ed0fbe
timeCreated: 1473296943
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_buttonClick.mp3.meta
================================================
fileFormatVersion: 2
guid: 37aa1cc8f3b4c432eadf1c2dfccc7bea
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_clearPattern.mp3.meta
================================================
fileFormatVersion: 2
guid: 484c67a70616d4650ac14756d57425b3
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_game_fail.mp3.meta
================================================
fileFormatVersion: 2
guid: 17a41cc94d9094b40851ebf214613dfd
timeCreated: 1473296943
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_game_pass.mp3.meta
================================================
fileFormatVersion: 2
guid: 2eb0b7e50b0dc48019e981d19c147dd9
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_ice.mp3.meta
================================================
fileFormatVersion: 2
guid: 1892b6eb574c24e4a80aab733f2933a4
timeCreated: 1473296943
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_noclear.mp3.meta
================================================
fileFormatVersion: 2
guid: 84f17252894a24abaaeff2b54ed95827
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_timewarning.mp3.meta
================================================
fileFormatVersion: 2
guid: 9e5eb50190f324dbc9e397d6abfc2381
timeCreated: 1473296946
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/effect_unswap.mp3.meta
================================================
fileFormatVersion: 2
guid: 6f4f592f0d9eb44c39fe687de94206d2
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/endgame.mp3.meta
================================================
fileFormatVersion: 2
guid: 02ec4f2831d9646c5be607156743fe35
timeCreated: 1473296943
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy1_down 1.mp3.meta
================================================
fileFormatVersion: 2
guid: de49e13493a7c4d8989560d86606945c
timeCreated: 1473296947
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy1_down.mp3.meta
================================================
fileFormatVersion: 2
guid: d7c5ae8add6f24ef7b5075f77940b600
timeCreated: 1473296946
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy2_down 1.mp3.meta
================================================
fileFormatVersion: 2
guid: 6bd87f4c748304d5b82b472e2a3686fc
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy2_down.mp3.meta
================================================
fileFormatVersion: 2
guid: 298ee82a478c74798bab40524cb660e7
timeCreated: 1473296944
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy2_out 1.mp3.meta
================================================
fileFormatVersion: 2
guid: afedb81c9dd854260a9c1fb80d53ed05
timeCreated: 1473296946
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy2_out.mp3.meta
================================================
fileFormatVersion: 2
guid: f0cc27073ee724b13a5bf8f9656560b0
timeCreated: 1473296948
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy3_down 1.mp3.meta
================================================
fileFormatVersion: 2
guid: f00612b8d5a454ce3b25236aab3c4a30
timeCreated: 1473296948
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios/enemy3_down.mp3.meta
================================================
fileFormatVersion: 2
guid: c0bc75c264fbe4461a72d62d17f8f4ec
timeCreated: 1473296946
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Audios.meta
================================================
fileFormatVersion: 2
guid: b0ec83e06ce574c03b787170c33a09b1
folderAsset: yes
timeCreated: 1473211413
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/MsgBox.prefab.meta
================================================
fileFormatVersion: 2
guid: 24b7bba068d3d424eaf9b4f21b16b049
timeCreated: 1451470029
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/Teddy.prefab.meta
================================================
fileFormatVersion: 2
guid: 569be71afa6ba4476b8594abe3b6ee39
timeCreated: 1474634941
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/WindowGridView.prefab.meta
================================================
fileFormatVersion: 2
guid: c2e2551d2b5cfff4daad7ab7451d013f
timeCreated: 1451532866
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/grid_cell.prefab.meta
================================================
fileFormatVersion: 2
guid: 624e758ff2c454b4ab9bb9ecca8c731b
timeCreated: 1451057882
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/list_cell.prefab.meta
================================================
fileFormatVersion: 2
guid: 9d0b87f5fc08d4e9caff6aac5c944ecc
timeCreated: 1451053085
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/page_cell.prefab.meta
================================================
fileFormatVersion: 2
guid: 4ab0713d48118415d9e9b6caa6eb2887
timeCreated: 1451052288
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/scorl_test.prefab.meta
================================================
fileFormatVersion: 2
guid: 82a09130a2210442b8e527444426c941
timeCreated: 1473297055
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs/tbl_test.prefab.meta
================================================
fileFormatVersion: 2
guid: 03ca883b53ff4eb4899d25acbc6c154f
timeCreated: 1475312520
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Prefabs.meta
================================================
fileFormatVersion: 2
guid: 50fcb62bf8eeb0e44a520e87654c6b2d
folderAsset: yes
timeCreated: 1470558010
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scenes/first.unity.meta
================================================
fileFormatVersion: 2
guid: fbb49926c06e840f085b1db2cc451b53
timeCreated: 1449290794
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scenes/second.unity.meta
================================================
fileFormatVersion: 2
guid: c3296db35bcf4034085f297866ad8039
timeCreated: 1470559565
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scenes/start.unity.meta
================================================
fileFormatVersion: 2
guid: f3d8e904190f75d4191b5484059644d3
timeCreated: 1470559565
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scenes.meta
================================================
fileFormatVersion: 2
guid: 6792e0cca877345cc8b3a5eb872f959d
folderAsset: yes
timeCreated: 1449290812
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/Demo/Firstui.cs
================================================
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
using Lui;
public class Firstui : MonoBehaviour
{
public Button btn_grid;
public Button btn_trans;
public Button btn_guide;
public LControlView ctrlView;
public LTableView tblView;
public LScrollView scrolView;
public LRichText rtfView;
public LPageView pageView;
public LListView listView;
public LGridView gridView;
public LProgress progView;
public LExpandListView expandView;
public LTableView tbl_drag;
public GameObject dragSelect;
public GameObject panel_root;
private LWindowManager _wm;
void Start()
{
_wm = LWindowManager.GetInstance();
btn_grid.onClick.AddListener(() =>
{
object[] list = new object[]{ 123,"测试内容" };
_wm.runWindow("Prefabs/WindowGridView.prefab", WindowHierarchy.Normal, list);
});
btn_trans.onClick.AddListener(() =>
{
_wm.LoadSceneAsync("second",(float p)=>
{
Debug.Log("进度 " + p);
});
});
btn_guide.onClick.AddListener(() =>
{
bool isBlock = panel_root.GetComponent().blocksRaycasts;
panel_root.GetComponent().blocksRaycasts = !isBlock;
Text textComp = btn_guide.transform.FindChild("Text").gameObject.GetComponent();
textComp.text = isBlock ? "关闭遮罩" : "开启遮罩";
});
ctrlView.onControlHandler = (float ox, float oy,bool isFinish) =>
{
//Debug.Log(string.Format("offsetX={0} offsetY={1}", ox, oy));
};
scrolView.onMoveCompleteHandler = () =>
{
Debug.Log(" scrolView.onMoveCompleteHandler ");
};
tblView.cellsSize = new Vector2(150, 40);
tblView.GetComponent().sizeDelta = new Vector2(150, 40 * 5);
tblView.cellsCount = 100;
tblView.SetCellHandle((int idx, GameObject obj) =>
{
obj.GetComponent().text = idx.ToString();
});
tblView.reloadData();
//rtfView.insertElement("hello world!!", Color.blue, 25, true, false, Color.blue, "数据");
//rtfView.insertElement("测试文本内容!!", Color.red, 15, false, true, Color.blue, "");
//rtfView.insertElement("Atlas/face/01", 5f, "");
//rtfView.insertElement("The article comes from the point of the examination", Color.green, 15, true, false, Color.blue, "");
// rtfView.insertElement("Atlas/face/0201.png", "");
//rtfView.insertElement(1);
//rtfView.insertElement("outline and newline", Color.yellow, 20, false, true, Color.blue, "");
rtfView.parseRichDefaultString(
""+
""+
"
"+
""+
"");
rtfView.onClickHandler = (string data) =>
{
Debug.Log("data " + data);
};
//rtfView.reloadData();
pageView.cellsSize = new Vector2(150, 100);
pageView.cellsCount = 14;
pageView.SetCellHandle((int idx,GameObject obj) =>
{
obj.transform.FindChild("Text").GetComponent().text = idx.ToString();
});
pageView.onPageChangedHandler = (int pageIdx) =>
{
Debug.Log("page " + pageIdx);
};
pageView.reloadData();
listView.limitNum = 10; //not must to set limitNum
for (int i = 0; i < 30; i++)
{
GameObject item = listView.dequeueItem(1);
item.GetComponent().sizeDelta = new Vector2(100, 40 + Random.Range(0, 40));
item.GetComponent().text = i.ToString();
listView.insertNodeAtLast(item,1);
}
listView.reloadData();
expandView.nodeNum = 20;
expandView.nodeItemNum = 1;
expandView.prepare();
expandView.expand(0);
expandView.expand(1);
expandView.reloadData();
gridView.cellsSize = new Vector2(100, 100);
gridView.cols = 4;
gridView.cellsCount = 100;
gridView.SetCellHandle((int idx,GameObject obj) =>
{
obj.GetComponent().text = idx.ToString();
});
gridView.reloadData();
progView.setValue (10);
progView.startProgress (80, 1.0f);
tbl_drag.onPickBeginHandler = (GameObject obj) => {
dragSelect.SetActive(true);
dragSelect.transform.position = obj.transform.position;
dragSelect.transform.Find("sprite").GetComponent().sprite = obj.GetComponent().sprite;
};
tbl_drag.onPickIngHandler = (Vector3 position) => {
dragSelect.transform.position = position;
};
tbl_drag.onPickEndHandler = (GameObject obj) =>
{
dragSelect.SetActive(false);
GameObject dragTarget = null;
for (int i = 0; i < 3; i++)
{
GameObject drag = GameObject.Find("drag" + (i + 1));
if (Vector2.Distance(drag.transform.position, dragSelect.transform.position) < 50)
{
dragTarget = drag;
break;
}
}
if (dragTarget != null)
{
Sprite oldSprite = obj.GetComponent().sprite;
obj.GetComponent().sprite = dragTarget.transform.Find("sprite").GetComponent().sprite;
dragTarget.transform.Find("sprite").GetComponent().sprite = oldSprite;
}
};
tbl_drag.SetCellHandle((int idx, GameObject obj) =>
{
});
tbl_drag.reloadData();
}
}
================================================
FILE: Assets/Game/Resources/Scripts/Demo/Firstui.cs.meta
================================================
fileFormatVersion: 2
guid: cebf28ad0381a9948ac7d7b861f6f763
timeCreated: 1451279137
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/Demo/Secondui.cs
================================================
using UnityEngine;
using UnityEngine.UI;
using Lui;
public class Secondui : MonoBehaviour {
public Button btn_msg;
public Button btn_trans;
public Button btn_anim;
public Button btn_clean;
public LTouchView touch_view;
private LWindowManager _wm;
protected Animator _teddyAnim;
void Start() {
_wm = LWindowManager.GetInstance();
_teddyAnim = GameObject.Find("Teddy").GetComponent();
btn_msg.onClick.AddListener(() =>
{
LLoadBundle.GetInstance().LoadAllBundles(new string[]{
"prefabs-msgbox_prefab.ab",
"atlas-face_png.ab" },()=>
{
_wm.runWindow("Prefabs/MsgBox.prefab", WindowHierarchy.Normal);
});
});
btn_trans.onClick.AddListener(() =>
{
LLoadBundle.GetInstance().LoadAllBundles(new string[]{
"atlas-face_png.ab"},()=>
{
_wm.LoadScene("first");
});
});
btn_anim.onClick.AddListener(() =>
{
_teddyAnim.SetBool("run_idle", false);
_teddyAnim.SetBool("idle_run", true);
});
btn_clean.onClick.AddListener(() =>
{
_teddyAnim.SetBool("idle_run", false);
_teddyAnim.SetBool("run_idle", true);
});
touch_view.onClickHandler2D = (GameObject obj) => {
Debug.Log(obj.name);
};
}
void OnLevelWasLoaded(int level){
//remove first textures
LLoadBundle.GetInstance().UnloadBundles( new string[]{
"atlas-face_png.ab"
});
}
}
================================================
FILE: Assets/Game/Resources/Scripts/Demo/Secondui.cs.meta
================================================
fileFormatVersion: 2
guid: ad3ebd9f68084764693da16070044427
timeCreated: 1451278800
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/Demo/WindowGridView.cs
================================================
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using Lui;
public class WindowGridView : LWindowBase
{
public Button btn_close;
public LGridPageView gridPageView;
private LWindowManager wm;
public WindowGridView()
{
this.disposeType = WindowDispose.Normal;
}
void Start()
{
btn_close.onClick.AddListener(() =>
{
LWindowManager wm = LWindowManager.GetInstance();
wm.popWindow(this);
});
gridPageView.cellsSize = new Vector2(400, 400);
gridPageView.cols = 4;
gridPageView.rows = 4;
gridPageView.gridCellsCount = 100;
gridPageView.gridCellsSize = new Vector2(100, 100);
gridPageView.SetCellHandle((int idx,GameObject obj) =>
{
obj.GetComponent().text = idx.ToString();
});
gridPageView.reloadData();
}
public override void Open(object[] list)
{
base.Open(list);
if (list!=null)
{
foreach (var item in list)
{
Debug.Log("数据:"+item.ToString());
}
}
}
public override void Close()
{
base.Close();
}
}
================================================
FILE: Assets/Game/Resources/Scripts/Demo/WindowGridView.cs.meta
================================================
fileFormatVersion: 2
guid: c8877e477c64e7f4883ce6c85912f424
timeCreated: 1451377646
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/Demo.meta
================================================
fileFormatVersion: 2
guid: 5204e3f0979e37b439aa6ae6a2a9b923
folderAsset: yes
timeCreated: 1451377644
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/LBase/Game.cs
================================================
using SLua;
using System.IO;
using UnityEngine;
using System.Collections;
using UnityEngine.Events;
using UnityEngine.UI;
[CustomLuaClassAttribute]
public class Game : MonoBehaviour
{
private static LuaSvr _l;
public UnityAction onProgressHandler;
void Start()
{
Application.targetFrameRate = LGameConfig.DEFAULT_FRAME_RATE;
if (_l == null)
{
if (LGameConfig.GetInstance().isDebug)
{
LuaState.loaderDelegate = loadFileWithSuffix;
}else
{
LuaState.loaderDelegate = loadLuaWithAb;
}
_l = new LuaSvr();
_l.init(tick, complete);
}
else
{
complete();
}
}
public static LuaSvr GetLuaSvr()
{
return _l;
}
void tick(int p)
{
if (onProgressHandler != null)
{
onProgressHandler.Invoke(p);
}
}
protected byte[] loadFileWithSuffix(string strFile)
{
if (string.IsNullOrEmpty(strFile))
{
return null;
}
strFile.Replace(".", "/");
strFile += LGameConfig.FILE_AFFIX_LUA;
string dir = strFile.StartsWith("Config") ? LGameConfig.CONFIG_CATAGORY_LUA : LGameConfig.DATA_CATAGORY_LUA;
string strLuaPath = dir + Path.DirectorySeparatorChar + strFile;
string strFullPath = LGameConfig.GetInstance().GetLoadUrl(strLuaPath);
// Read from file.
LArchiveBinFile cArc = new LArchiveBinFile();
if (!cArc.Open(strFullPath, FileMode.Open, FileAccess.Read))
{
return null;
}
if (!cArc.IsValid())
{
return null;
}
int nContentLength = (int)cArc.GetStream().Length;
byte[] aContents = new byte[nContentLength];
cArc.ReadBuffer(ref aContents, nContentLength);
cArc.Close();
return aContents;
}
protected byte[] loadLuaWithAb(string strFile)
{
string ext = LGameConfig.GetInstance().isEncrypt ? ".bytes" : ".txt";
TextAsset asset = null;
if (strFile.StartsWith("Config"))
{
asset = LLoadBundle.GetInstance().LoadAsset("@luaconfig.ab", "@LuaConfig/" + strFile + ext);
}
else
{
asset = LLoadBundle.GetInstance().LoadAsset("@lua.ab", "@Lua/" + strFile + ext);
}
if (asset == null) return null;
//if (LGameConfig.GetInstance().isEncrypt)
// return LUtil.AESDecrypt(asset.bytes, LGameConfig.EncryptKey32, LGameConfig.EncryptKey16);
// else
return asset.bytes;
}
void complete()
{
if (LGameConfig.GetInstance().isShowFps)
{
LFPSView.Show();
}
if (!LGameConfig.GetInstance().isDebug) //生产环境
{
if (LGameConfig.GetInstance ().isHotFix) {
GameObject canvas = GameObject.Find("Canvas");
Text lab_unzip = null;
if (canvas.transform.Find("prog"))
{
canvas.transform.Find("prog").gameObject.SetActive(true);
lab_unzip = canvas.transform.Find("prog/lab_unzip").GetComponent();
}
GameObject obj = new GameObject ();
obj.name = "ResUpdate";
LResUpdate resUpdate = obj.AddComponent ();
resUpdate.onUnzipProgressHandler = (int step) =>{
if(lab_unzip)
lab_unzip.text = step.ToString();
Debug.Log(" unzip "+step);
};
resUpdate.onCompleteHandler = () => {
Destroy (obj);
LLoadBundle.GetInstance().LoadAllBundles(new string[] { "@lua.ab","@luaconfig.ab" }, () =>
{
_l.start("main");
});
};
resUpdate.checkUpdate ();
} else {
LLoadBundle.GetInstance ().LoadAllBundles (new string[] { "@lua.ab","@luaconfig.ab" },()=>
{
_l.start ("main");
});
}
}
else //PC端开发
{
_l.start("main");
}
}
}
================================================
FILE: Assets/Game/Resources/Scripts/LBase/Game.cs.meta
================================================
fileFormatVersion: 2
guid: 1e64327fc1db0624eb9e033e2ad943d5
timeCreated: 1462326417
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/LBase/LArchiveBin.cs
================================================
using UnityEngine;
using System;
using System.IO;
using System.Text;
public class LArchiveBin {
// buff size
public readonly int TX_BUFSIZE = 8;
// file stream
protected Stream m_cStream = null;
// open flag
protected bool m_bOpen = false;
/**
* Constructor.
* @param void.
* @return void.
*/
public LArchiveBin()
{
}
/**
* Get the stream of this archive.
* @param void.
* @return - Stream, currently used stream.
*/
public Stream GetStream()
{
return m_cStream;
}
/**
* Get if this archive is valid.
* @param void.
* @return - bool - true if valid, otherwise false.
*/
public bool IsValid()
{
return (null != m_cStream && m_bOpen) ? true : false;
}
/**
* Write buffer.
* @param string strText - Text value.
* @return - Data size.
*/
public int ReadBuffer(ref byte[] aBuff, int nBuffSize)
{
m_cStream.Read(aBuff, 0, nBuffSize);
return aBuff.Length;
}
/**
* Read bool.
* @param ref bool bValue - Bool value.
* @return - Data size.
*/
public int ReadBool(ref bool bValue)
{
byte yValue = 0;
ReadInt8(ref yValue);
bValue = (0 == yValue) ? false : true;
return sizeof(byte);
}
/**
* Read string.
* @param ref string strText - Text value.
* @return - Data size.
*/
public int ReadString(ref string strValue)
{
return ReadString(ref strValue, false);
}
/**
* Read string.
* @param ref string strText - Text value.
* @param bool bUnicode - Is unicode or not.
* @return - Data size.
*/
public int ReadString(ref string strValue, bool bUnicode)
{
if (!IsValid())
{
return 0;
}
if (bUnicode)
{
byte[] aBuff = new byte[TX_BUFSIZE * 8];
m_cStream.Read(aBuff, 0, sizeof(int));
int nStrLen = BitConverter.ToInt32(aBuff, 0);
// check buff size
if (nStrLen > TX_BUFSIZE)
{
aBuff = new byte[nStrLen];
}
m_cStream.Read(aBuff, 0, nStrLen);
strValue = Encoding.Unicode.GetString(aBuff, 0, nStrLen);
return nStrLen;
}
else
{
byte[] aBuff = new byte[TX_BUFSIZE * 8];
m_cStream.Read(aBuff, 0, sizeof(int));
int nStrLen = BitConverter.ToInt32(aBuff, 0);
// check buff size
if (nStrLen > TX_BUFSIZE)
{
aBuff = new byte[nStrLen];
}
m_cStream.Read(aBuff, 0, nStrLen);
strValue = Encoding.ASCII.GetString(aBuff, 0, nStrLen);
return nStrLen;
}
}
/**
* Read float.
* @param float nValue - Float value.
* @return - Data size.
*/
public int ReadFloat(ref float fValue)
{
byte[] aBuff = new byte[TX_BUFSIZE * 2];
m_cStream.Read(aBuff, 0, sizeof(float));
fValue = BitConverter.ToSingle(aBuff, 0);
return sizeof(float);
}
/**
* Read double.
* @param double dValue - Double value.
* @return - Data size.
*/
public int ReadDouble(ref double dValue)
{
byte[] aBuff = new byte[TX_BUFSIZE * 4];
m_cStream.Read(aBuff, 0, sizeof(double));
dValue = BitConverter.ToDouble(aBuff, 0);
return sizeof(double);
}
/**
* Read int8.
* @param char n8Value - Char value.
* @return - Data size.
*/
public int ReadInt8(ref byte n8Value)
{
byte[] aBuff = new byte[TX_BUFSIZE * 2];
m_cStream.Read(aBuff, 0, sizeof(byte));
n8Value = aBuff[0];
return sizeof(byte);
}
/**
* Read int32.
* @param int nValue - int32 value.
* @return - Data size.
*/
public int ReadInt16(ref Int16 n16Value)
{
byte[] aBuff = new byte[TX_BUFSIZE * 2];
m_cStream.Read(aBuff, 0, sizeof(Int16));
n16Value = BitConverter.ToInt16(aBuff, 0);
return sizeof(Int16);
}
/**
* Read uint32.
* @param UInt32 nValue - uint32 value.
* @return - Data size.
*/
public int ReadUInt16(ref UInt16 u16Value)
{
byte[] aBuff = new byte[TX_BUFSIZE * 2];
m_cStream.Read(aBuff, 0, sizeof(UInt16));
u16Value = BitConverter.ToUInt16(aBuff, 0);
return sizeof(UInt16);
}
/**
* Read int32.
* @param int nValue - int32 value.
* @return - Data size.
*/
public int ReadInt32(ref int nValue)
{
byte[] aBuff = new byte[TX_BUFSIZE * 2];
m_cStream.Read(aBuff, 0, sizeof(int));
nValue = BitConverter.ToInt32(aBuff, 0);
return sizeof(int);
}
/**
* Read uint32.
* @param UInt32 nValue - uint32 value.
* @return - Data size.
*/
public int ReadUInt32(ref UInt32 u32Value)
{
byte[] aBuff = new byte[TX_BUFSIZE * 2];
m_cStream.Read(aBuff, 0, sizeof(UInt32));
u32Value = BitConverter.ToUInt32(aBuff, 0);
return sizeof(UInt32);
}
/**
* Read int32.
* @param int nValue - Int64 n64Value.
* @return - Data size.
*/
public int ReadInt64(ref Int64 n64Value)
{
byte[] aBuff = new byte[TX_BUFSIZE * 4];
m_cStream.Read(aBuff, 0, sizeof(Int64));
n64Value = BitConverter.ToInt64(aBuff, 0);
return sizeof(Int64);
}
/**
* Read uint32.
* @param UInt32 nValue - UInt64 dw64Value.
* @return - Data size.
*/
public int ReadUInt64(ref UInt64 dw64Value)
{
byte[] aBuff = new byte[TX_BUFSIZE * 4];
m_cStream.Read(aBuff, 0, sizeof(UInt64));
dw64Value = BitConverter.ToUInt64(aBuff, 0);
return sizeof(UInt64);
}
/**
* Write buffer.
* @param string strText - Text value.
* @return - Data size.
*/
public int WriteBuffer(byte[] aBuff)
{
if (!IsValid())
{
return 0;
}
m_cStream.Write(aBuff, 0, aBuff.Length);
return aBuff.Length;
}
/**
* Write bool value.
* @param bool bValue - bool value.
* @return - Data size.
*/
public int WriteBool(bool bValue)
{
if (!IsValid())
{
return 0;
}
byte yValue = (byte)(bValue ? 1 : 0);
return WriteInt8(yValue);
}
/**
* Write string.
* @param string strText - Text value.
* @return - Data size.
*/
public int WriteString(string strValue)
{
return WriteString(strValue, false);
}
/**
* Write string.
* @param string strText - Text value.
* @param bool bUnicode - Is unicode or not.
* @return - Data size.
*/
public int WriteString(string strValue, bool bUnicode)
{
if (!IsValid())
{
return 0;
}
if (bUnicode)
{
// Write string length.
byte[] aLength = BitConverter.GetBytes(strValue.Length * sizeof(char));
m_cStream.Write(aLength, 0, sizeof(int));
// Write string.
byte[] aString = Encoding.Unicode.GetBytes(strValue);
m_cStream.Write(aString, 0, strValue.Length * sizeof(char));
return (strValue.Length * sizeof(char) + sizeof(int));
}
else
{
// Write string length.
byte[] aLength = BitConverter.GetBytes(strValue.Length);
m_cStream.Write(aLength, 0, sizeof(int));
// Write string.
byte[] aString = Encoding.ASCII.GetBytes(strValue);
m_cStream.Write(aString, 0, strValue.Length);
return (strValue.Length + sizeof(int));
}
}
/**
* Write float.
* @param float nValue - Float value.
* @return - Data size.
*/
public int WriteFloat(float fValue)
{
if (!IsValid())
{
return 0;
}
byte[] aInt32 = BitConverter.GetBytes(fValue);
m_cStream.Write(aInt32, 0, sizeof(float));
return sizeof(float);
}
/**
* Write double.
* @param double dValue - Double value.
* @return - Data size.
*/
public int WriteDouble(double dValue)
{
if (!IsValid())
{
return 0;
}
byte[] aInt32 = BitConverter.GetBytes(dValue);
m_cStream.Write(aInt32, 0, sizeof(double));
return sizeof(double);
}
/**
* Write int8.
* @param byte n8Value - Byte n8Value.
* @return - Data size.
*/
public int WriteInt8(byte n8Value)
{
if (!IsValid())
{
return 0;
}
byte[] aBuff = { n8Value };
m_cStream.Write(aBuff, 0, sizeof(byte));
return sizeof(byte);
}
/**
* Write int16.
* @param Int16 nValue - Int16 value.
* @return - Data size.
*/
public int WriteInt16(Int16 nValue)
{
if (!IsValid())
{
return 0;
}
byte[] aInt16 = BitConverter.GetBytes(nValue);
m_cStream.Write(aInt16, 0, sizeof(Int16));
return sizeof(Int16);
}
/**
* Write uint16.
* @param UInt16 nValue - UInt16 value.
* @return - Data size.
*/
public int WriteUInt16(UInt16 nValue)
{
if (!IsValid())
{
return 0;
}
byte[] aUInt16 = BitConverter.GetBytes(nValue);
m_cStream.Write(aUInt16, 0, sizeof(UInt16));
return sizeof(UInt16);
}
/**
* Write int32.
* @param int nValue - int32 value.
* @return - Data size.
*/
public int WriteInt32(int nValue)
{
if (!IsValid())
{
return 0;
}
byte[] aInt32 = BitConverter.GetBytes(nValue);
m_cStream.Write(aInt32, 0, sizeof(Int32));
return sizeof(Int32);
}
/**
* Write uint32.
* @param UInt32 nValue - uint32 value.
* @return - Data size.
*/
public int WriteUInt32(UInt32 nValue)
{
if (!IsValid())
{
return 0;
}
byte[] aUInt32 = BitConverter.GetBytes(nValue);
m_cStream.Write(aUInt32, 0, sizeof(UInt32));
return sizeof(UInt32);
}
/**
* Write int64.
* @param Int64 n64Value - int64 value.
* @return - Data size.
*/
public int WriteInt64(Int64 n64Value)
{
if (!IsValid())
{
return 0;
}
byte[] aInt64 = BitConverter.GetBytes(n64Value);
m_cStream.Write(aInt64, 0, sizeof(Int64));
return sizeof(Int64);
}
/**
* Write uint64.
* @param UInt64 dw64Value - uint64 value.
* @return - Data size.
*/
public int WriteUInt64(UInt64 dw64Value)
{
if (!IsValid())
{
return 0;
}
byte[] aUInt64 = BitConverter.GetBytes(dw64Value);
m_cStream.Write(aUInt64, 0, sizeof(UInt64));
return sizeof(UInt64);
}
}
================================================
FILE: Assets/Game/Resources/Scripts/LBase/LArchiveBin.cs.meta
================================================
fileFormatVersion: 2
guid: 03b9753422ec3b143a5cc69b81fa9343
timeCreated: 1455897062
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/LBase/LArchiveBinFile.cs
================================================
using System.IO;
using System;
public class LArchiveBinFile : LArchiveBin {
/**
* open file.
* @param void.
* @return void.
*/
public bool Open(string strFileName, FileMode eMode, FileAccess eAccess)
{
if (string.IsNullOrEmpty(strFileName))
{
return false;
}
if ((FileMode.Open == eMode) && !File.Exists(strFileName))
{
return false;
}
try
{
m_cStream = new FileStream(strFileName, eMode, eAccess);
}
catch (Exception cEx)
{
Console.Write(cEx.Message);
}
if (null == m_cStream)
{
return false;
}
m_bOpen = true;
return true;
}
/**
* Close this stream.
* @param void.
* @return bool - true if success, otherwise false.
*/
public bool Close()
{
if (null == m_cStream)
{
m_bOpen = false;
return false;
}
m_cStream.Close();
m_bOpen = false;
return true;
}
}
================================================
FILE: Assets/Game/Resources/Scripts/LBase/LArchiveBinFile.cs.meta
================================================
fileFormatVersion: 2
guid: 1b7dbb05460093847b32c5c3c3409b5f
timeCreated: 1455895084
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/LBase/LGameConfig.cs
================================================
using UnityEngine;
using UnityEngine.Events;
using System.IO;
using System.Xml;
using SLua;
[CustomLuaClass]
public class LGameConfig
{
// The config file path.
public static readonly string CONFIG_FILE = "config";
// The lua data folder name.
public static readonly string DATA_CATAGORY_LUA = "@Lua";
// The lua config folder name.
public static readonly string CONFIG_CATAGORY_LUA = "@LuaConfig";
public static readonly string ASSETBUNDLE_AFFIX = ".ab";
// The lua file affix.
public static readonly string FILE_AFFIX_LUA = ".lua";
// The lua files zip name.
public static readonly string UPDATE_FILE_ZIP = "data.zip";
// asset load base format
public static readonly string ASSET_BASE_FORMAT = "Assets/Game/Resources/{0}";
// 32 bytes encrypt key
public static string EncryptKey32 = "12345678901234567890123456789012";
// 16 bytes encrypt key
public static string EncryptKey16 = "1234567890123456";
// is activate debug
public bool isDebug = true;
// is pack lua files in app
public bool isHotFix = true;
// is show frame rate
public bool isShowFps = true;
// is use luajit & encode
public bool isEncrypt = true;
// remote server resource url
public string SERVER_RES_URL = "";
public string SERVER_ADDRESS_IP = "";
public string SERVER_ADDRESS_PORT = "";
// game default target frame rate
public static int DEFAULT_FRAME_RATE = 60;
// The local file url prefix. (For assetbundle.)
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
public static readonly string LOCAL_URL_PREFIX = "file:///";
#else
public static readonly string LOCAL_URL_PREFIX = "file://";
#endif
// The asset path in persistent asset path.
private string m_strPersistAssetPath = string.Empty;
// The asset path in streaming asset path.
private string m_strStreamAssetPath = string.Empty;
// The asset path in caching path.
private string m_strCachingAssetPath = string.Empty;
// The global instance.
private static LGameConfig m_cInstance = null;
// open debug view
public UnityAction openGmViewFunc;
public UnityAction logCollectFunc;
[DoNotToLua]
public void HandleLog(string message, string stackTrace, LogType type)
{
if (logCollectFunc != null)
{
logCollectFunc.Invoke(message, string.Format(stackTrace), type);
}
}
/**
* Constructor.
*
* @param void.
* @return void.
*/
private LGameConfig()
{
LoadConfig();
}
/**
* Destructor.
*
* @param void.
* @return void.
*/
~LGameConfig()
{
m_cInstance = null;
}
public static LGameConfig GetInstance()
{
if (null == m_cInstance)
{
m_cInstance = new LGameConfig();
}
return m_cInstance;
}
// Get persistent assets path.
public string PersistentAssetsPath
{
get
{
if (string.IsNullOrEmpty(m_strPersistAssetPath))
{
m_strPersistAssetPath = Application.persistentDataPath + Path.DirectorySeparatorChar;
}
return m_strPersistAssetPath;
}
}
// Get streaming assets path.
public string StreamingAssetsPath
{
get
{
if (string.IsNullOrEmpty(m_strStreamAssetPath))
{
m_strStreamAssetPath = Application.streamingAssetsPath + Path.DirectorySeparatorChar;
}
return m_strStreamAssetPath;
}
}
// Get caching assets path.
public string CachingAssetsPath
{
get
{
if (string.IsNullOrEmpty(m_strCachingAssetPath))
{
m_strCachingAssetPath = Application.temporaryCachePath + Path.DirectorySeparatorChar;
}
return m_strCachingAssetPath;
}
}
/**
* Get the final load url.
*
* @param string strPathName - The path name of the file with dir except the base url.
* @return string - The final full url load string.
*/
public string GetLoadUrl(string strPathName)
{
string strFilePath = PersistentAssetsPath + strPathName;
if (File.Exists(strFilePath) && (!this.isDebug))
{
return strFilePath;
}
else
{
strFilePath = Application.dataPath + "/Game/" + strPathName;
return strFilePath;
}
}
/**
* Get the final load url for directory.
*
* @param string strPathName - The path dir name of the file with dir except the base url.
* @return string - The final full url load string for the path dir.
*/
public string GetLoadUrlForDir(string strPathName)
{
string strFilePath = PersistentAssetsPath + strPathName;
if (Directory.Exists(strFilePath))
{
return strFilePath;
}
else
{
strFilePath = StreamingAssetsPath + strPathName;
return strFilePath;
}
}
public static string GetABNameWithAtlasPath(string path){
return string.Format("{0}{1}", path.Replace ('/', '-').Replace ('.', '_').ToLower(),ASSETBUNDLE_AFFIX);
}
private void LoadConfig()
{
TextAsset textAsset = Resources.Load(CONFIG_FILE);
if (textAsset)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(textAsset.text); //加载Xml文件
XmlElement rootElem = doc.DocumentElement; //获取根节点
XmlNodeList debugs = rootElem.GetElementsByTagName("Debug");
isDebug = debugs[0].InnerText == "1";
XmlNodeList resUrls = rootElem.GetElementsByTagName("ResUrl");
SERVER_RES_URL = resUrls[0].InnerText;
XmlNodeList hotFix = rootElem.GetElementsByTagName("HotFix");
isHotFix = hotFix[0].InnerText == "1";
XmlNodeList showFps = rootElem.GetElementsByTagName("ShowFps");
isShowFps = showFps[0].InnerText == "1";
XmlNodeList encrypt = rootElem.GetElementsByTagName("Encrypt");
isEncrypt = encrypt[0].InnerText == "1";
XmlNodeList ip = rootElem.GetElementsByTagName("Ip");
SERVER_ADDRESS_IP = ip[0].InnerText;
XmlNodeList port = rootElem.GetElementsByTagName("Port");
SERVER_ADDRESS_PORT = port[0].InnerText;
}
}
}
================================================
FILE: Assets/Game/Resources/Scripts/LBase/LGameConfig.cs.meta
================================================
fileFormatVersion: 2
guid: 0b6447a53af63924190cab30b737edfa
timeCreated: 1455894973
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
================================================
FILE: Assets/Game/Resources/Scripts/LBase/LLoadBundle.cs
================================================
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Events;
using System.IO;
using SLua;
[CustomLuaClass]
public class LLoadBundle : MonoBehaviour
{
private Dictionary bundles;
private static LLoadBundle _instance;
private Dictionary spritesCache;
private Dictionary tplCache;
public AssetBundle GetBundleByName(string name)
{
AssetBundle b;
bundles.TryGetValue(name, out b);
return b;
}
private LLoadBundle()
{
bundles = new Dictionary();
spritesCache = new Dictionary();
tplCache = new Dictionary();
}
public static LLoadBundle GetInstance()
{
if (_instance == null)
{
GameObject obj = new GameObject();
DontDestroyOnLoad(obj);
obj.name = "LLoadBundle";
_instance = obj.AddComponent();
}
return _instance;
}
public void LoadAllBundles(string[] bundle_names, UnityAction callFunc,UnityAction progressFunc=null)
{
if (LGameConfig.GetInstance().isDebug)
{
callFunc.Invoke();
}
else
{
StartCoroutine(Load(bundle_names, callFunc,progressFunc));
}
}
IEnumerator Load(string[] bundle_names, UnityAction callFunc,UnityAction progressFunc=null)
{
int len = bundle_names.Length;
for (int i = 0; i < len; i++)
{
string name = bundle_names[i];
if (!bundles.ContainsKey(name))
{
using (WWW asset = new WWW(LResUpdate.LOCAL_RES_URL + name))
{
Debug.Log("bundle name:"+name);
yield return asset;
if (string.IsNullOrEmpty (asset.error)) {
bundles.Add(name, asset.assetBundle);
asset.Dispose();
if(progressFunc!=null)
progressFunc.Invoke(i+1);
}else{
Debug.Log("bundle error:"+name+" "+asset.error);
}
}
}
if (i == len - 1)
{
callFunc();
}
}
}
public Object LoadAsset(string bundleName, string assetName)
{
string key = string.Format("{0}_{1}",bundleName,assetName);
if(tplCache.ContainsKey(key)){
return tplCache[key];
}else{
Object tpl = LoadAsset