Lua浣滀负Unity棣栭夌殑鐑洿鏂版柟寮忥紝鐜板湪鍩烘湰涓婃垚浜嗗晢涓氭父鎴忕殑鏍囬厤锛坕OS鐨勬満鍒讹級銆傚悓鏃朵笉寰椾笉璇寸殑鏄紝浣跨敤Lua锛屽彲浠ラ伩寮澶у瀷椤圭洰涓暱鏃堕棿缂栬瘧鐨勯棶棰橈紙鍏跺疄杩欎釜闂鍦ㄦ柊鐗堟湰鐨刄nity涓凡缁忚В鍐筹級銆傝繕鏈変竴涓ソ澶勬槸锛屾湇鍔″櫒鍙互鎺ㄩ佷竴娈礚ua浠g爜鍒板鎴风锛岀浉褰撲簬鍋氬疄鏃禤atch锛岀淮鎶ら潪甯搁珮鏁堛備絾鏄張涓嶅緱涓嶆彁锛孡ua鏄竴涓潙锛屽紑鍙戞晥鐜囧拰娓告垙杩愯鎬ц兘閮戒細鍙楀埌涓瀹氱殑褰卞搷銆傛墍浠ヤ娇鐢ㄨ呬竴瀹氳鍦ㄩ傚綋鐨勭幆澧冧笅浣跨敤锛岃帿瑕佷竴姒傝屽叏銆
鍥炲埌姝i锛岃繖閲屽浜庝釜浜轰範鎯紝浣跨敤tolua#(绠绉皌olua)銆倀olua鎵撳寘lua浠g爜鏃舵湁涓祦绋嬶紝鍗佸垎涓嶅弸濂姐傚畠浼氬皢.lua鏂囦欢澶嶅埗鍒皌emp鏂囦欢澶逛笅锛屽苟鏀瑰悕涓.byte鏂囦欢锛岀劧鍚庡皢杩欎簺.byte鏂囦欢鎵撳寘鎴怉ssetBundle銆備絾鏄鏋滄垜浠紑鍙戜簡寰堝鏂囦欢锛屽氨浼氬湪椤圭洰涓敓鎴愬ぇ閲忕殑鏃犵敤鐨.byte鏂囦欢銆傜┒鍏跺師鍥狅紝鏄洜涓簎nity鏃犳硶璇嗗埆.lua鏂囦欢锛屾墍浠ユ棤娉曟墦鍖呭埌Assetbundle涓
鎵浠ユ垜浠鍋氱殑鏄熷姪ScriptedImporter甯姪Unity璇嗗埆.lua鏂囦欢銆
ScriptedImporter鏄疷nity2017.1寮曞叆鐨勫姛鑳斤紝浣跨敤瀹冿紝鎴戜滑鍙互璁︰nity璇嗗埆寰堝瀹冩棤娉曡瘑鍒殑鏂囦欢锛屾瘮濡侲xcel(.xlsx)鏂囦欢锛岃嚜瀹氫箟鐨勪竴浜涘悗缂鐨勬枃浠躲傝銆奤nity鎻掍欢寮鍙:ScriptedImporter鍜孉ssetImporter銆
鏍规嵁涓婃枃涓彁鍒扮殑閫犳垚tolua鐢熸垚鐨勫師鍥狅紝鎴戜滑鍙鎶.lua鏂囦欢璇嗗埆涓轰竴涓猅extAsset灏辫兘瑙e喅闂锛屽洜涓.byte鏂囦欢鏈韩灏辫Unity璇嗗埆涓篢extAsset銆傛墍浠ユ垜浠彲浠ュ啓涓涓狶uaImporter锛岀户鎵夸簬ScriptedImporter锛岃鍙栨枃浠剁殑鏂囨湰鐢熸垚涓涓猅extAsset浣滀负琚瘑鍒殑鐗╀綋鍗冲彲
LuaImporter.cs
using System.IO; using UnityEditor; using UnityEditor.Experimental.AssetImporters; using UnityEngine; [ScriptedImporter(1, "lua")] public class LuaImporter : ScriptedImporter { public override void OnImportAsset(AssetImportContext ctx) { var text = File.ReadAllText(ctx.assetPath); var asset = new TextAsset(text); ctx.AddObjectToAsset("main obj", asset); ctx.SetMainObject(asset); } }
灏哃uaImporter.cs鏀惧湪宸ョ▼鐨凟ditor鏂囦欢澶逛笅锛岀紪璇戝畬鎴愬悗锛岄」鐩細鑷姩閲嶆柊瀵煎叆鎵鏈夌殑.lua鏂囦欢銆傞氳繃涓嬪浘鎴戜滑鍙互鐪嬪埌鏃犳硶璇嗗埆.lua鏂囦欢鐨勬牱瀛
閫氳繃LuaImporter涔嬪悗Unity灏.lua鏂囦欢璇嗗埆涓篢extAsset锛屼笉浠呭浘鏍囧彉浜嗭紝鍙充晶杩樻樉绀哄嚭浜嗕唬鐮併
浣嗘槸鎴戜滑鐪婥#浠g爜鐨勬椂鍊欙紝缁嗗績鐨勫彲浠ョ湅鍒版槸杩欐牱鐨勬儏鍐
閭d箞鎴戜滑鏄惁涔熻兘瀹炵幇鐨勶紝绛旀鏄偗瀹氱殑銆俇nity鎻愪緵ScriptedImporterEditor鏉ョ粯鍒惰嚜瀹氫箟Importer鐨処mport闈㈡澘灞曠幇銆
[CustomEditor(typeof(LuaImporter))] public class LuaImporterEditor : ScriptedImporterEditor { public override void OnInspectorGUI() { } }
鍏舵湰璐ㄨ繕鏄竴涓狤ditor锛屾墍浠ヤ篃鍙互鎸夌収鑷繁鐨勯渶姹傝嚜瀹氫箟Import闈㈡澘銆傝繖閲屼粈涔堥兘涓嶅啓锛屽氨鏄粈涔堥兘涓嶈銆傛墍浠ョ粨鏋滃涓嬪浘鎵绀
OK鑷虫灏卞畬鎴愪簡.lua鐨勮瘑鍒伐浣溿
鑷充簬鎵撳寘鐨勬柟娉曞氨寰堢畝鍗曚簡锛岀洿鎺ユ墦鍖呰繖浜.lua鏂囦欢鍗冲彲銆
濡傛灉浣犻」鐩腑鏈夐偅浜涢渶瑕佽瘑鍒絾鏄疷nity鏃犳硶璇嗗埆鐨勬枃浠剁殑璇濓紝浣跨敤ScriptedImporter鍚с
鍙傝冩枃妗
https://docs.unity3d.com/Manual/ScriptedImporters.html
https://docs.unity3d.com/ScriptReference/Experimental.AssetImporters.ScriptedImporter.html
https://docs.unity3d.com/ScriptReference/Experimental.AssetImporters.ScriptedImporterEditor.html
tolua#寮婧愬簱