xLua_001 Lua 文件加載

xLua下載

1、HelloWrold 代碼

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;   // 引入XLua命名空間 public class Helloworld01 : MonoBehaviour
{//聲明LuaEnv對象  private LuaEnv luaenv;void Start(){//實例化LuaEnv對象luaenv = new LuaEnv();//執行lua代碼 外面的雙引號里面的是lua代碼luaenv.DoString("print('Hello world')");}private void OnDestroy(){//釋放LuaEnv對象luaenv.Dispose();}
}

輸出結果:

2、環境管理規范

一個unity 項目最好只有一個 LuaEnv 實例

輸出結果:

3、建立單獨的Lua文件

單獨的lua文件:
把lua程序放到resources文件夾里面,來加載這個程序,獲取里面的字符串,把字符串當做一個參數放在C#文件中執行?

  • resources文件中

?引用腳本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;   // 引入XLua命名空間 public class Helloworld02 : MonoBehaviour
{void Start(){   //文件名:helloworld.lua.txtTextAsset ta = Resources.Load<TextAsset>("helloworld.lua");     LuaEnv env = new LuaEnv();env.DoString(ta.text);   // env.DoString(ta.ToString());env.Dispose();}
}

輸出結果:

4、使用系統內置加載Lua的方式

5、自定義加載器Loader

1) 加載一個不存在的lua文件(利用系統內置的加載方式,自定義Loader為空)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'XXXXXX'");env.Dispose();    }private byte[] MyLoader(ref string filePath){return null;}}

輸出結果:

2) 加載helloworld? lua文件(利用系統內置的加載方式,自定義Loader為空)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'helloworld'");env.Dispose();    }private byte[] MyLoader(ref string filePath){//輸出文件名  helloworldprint(filePath);//自定義loader為空return null;}}

輸出結果:

?輸出順序:自定義Loader ->>? 系統內置的Loader

3) 加載? 自定義Loader (首先執行自定義Loader程序? ?找到字節數組,執行自定義Loader,系統內置的Loader程序,不支執行)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'helloworld'");env.Dispose();    }private byte[] MyLoader(ref string filePath){print(filePath);string s = "print (123)";//字符串轉為字節數組//通過System.Text.Encoding.UTF8轉為字節數組  //通過GetBytes() 來獲取數組return System.Text.Encoding.UTF8.GetBytes(s);}}

輸出結果:

6、通過 路徑 加載Lua文件

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using XLua;public class Createloader : MonoBehaviour
{void Start(){LuaEnv env = new LuaEnv();env.AddLoader(MyLoader);env.DoString("require 'test007'");env.Dispose();    }private byte[] MyLoader(ref string filePath){print(filePath);//return System.Text.Encoding.UTF8.GetBytes(s);print(Application.streamingAssetsPath);//路徑構建    拼接完整路徑<Project>/Assets/StreamingAssets/test007.lua.textstring absPath = Application.streamingAssetsPath + "/" + filePath + ".lua.text";//File.ReadAllText(absPath):文件讀取(讀取指定路徑的文本文件內容)//字節轉換return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath));}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73777.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每天看一篇漏洞報告

前言&#xff1a; 內容來源于烏云漏洞 今日思考xss漏洞&#xff0c; 今天看到一篇文章&#xff0c;里面詳細說了xss的繞過技巧&#xff0c;雖然時間久了&#xff0c;沒有去嘗試&#xff0c;待會有時間去測試一下 以下是整理后的文章&#xff0c;原文在下面 文章鏈接&#…

【sql靶場】第18-22關-htpp頭部注入保姆級教程

目錄 【sql靶場】第18-22關-htpp頭部注入保姆級教程 1.回顧知識 1.http頭部 2.報錯注入 2.第十八關 1.嘗試 2.爆出數據庫名 3.爆出表名 4.爆出字段 5.爆出賬號密碼 3.第十九關 4.第二十關 5.第二十一關 6.第二十二關 【sql靶場】第18-22關-htpp頭部注入保姆級教程…

Python----計算機視覺處理(Opencv:形態學變換)

一、形態學變化 形態學變換&#xff08;Morphological Transformations&#xff09;是一種基于形狀的圖像處理技術&#xff0c;主要處理的對象為二值化圖像。 形態學變換有兩個輸入和一個輸出&#xff1a;輸入為原始圖像和核&#xff08;即結構化元素&#xff09;&#xff0c;輸…

對于memset(b, 1, sizeof b)賦值為16843009情況

memset(b, 1, sizeof b); 的行為看起來可能不符合預期&#xff0c;這是因為 memset 的工作方式和數據類型之間的差異導致的。下面詳細解釋這個問題。 1. memset 的作用 memset 是 C/C 中的一個標準庫函數&#xff0c;用于將一段內存區域的值設置為指定的字節值。它的函數原型如…

【最新版】智慧小區物業管理小程序源碼+uniapp全開源

一.系統介紹 智慧小區物業管理小程序,包含小區物業繳費、房產管理、在線報修、業主活動報名、在線商城等功能。為物業量身打造的智慧小區運營管理系統,貼合物業工作場景,輕松提高物業費用收繳率,更有功能模塊個性化組合,助力物業節約成本高效運營。 二.搭建環境 系統環…

C++模板進階

目錄 非類型模板參數 類模板的特化 分類 函數模板的特化 模板分離編譯 問題 解決方法 1&#xff09;不對模板定義進行分離或對模板進行特例化&#xff1b; 2&#xff09;將聲明和定義放在同一個文件 總結 關于C模板的使用在《C類和對象》中有介紹&#xff0c;本篇博客…

Ubuntu togo系統讀寫性能與原生系統測試

我前面把一個Ubuntu環境拷貝到了一個10Gbps的硬盤盒制作了一個Ubuntu togo的系統&#xff0c;帖子在這里&#xff0c;這篇文章主要用于測試使用Ubuntu togo的系統和原生系統的性能差異。 以下是測試Ubuntu togo系統與原系統性能差異的具體方案&#xff0c;結合移動硬盤特性及參…

【css酷炫效果】實現魚群游動動態效果

【css酷炫效果】實現小魚游動動態效果 緣創作背景css代碼創建div容器引入jquery引入魚群js完整代碼效果圖成品資源下載鏈接:點擊下載 緣 在開發系統功能的時候,無意間看到了小魚游動特效,感覺很有意思,就在網上找了相關教程,分享給大家。 創作背景 剛看到csdn出活動了…

停車場停車位數據集,標注停車位上是否有車,平均正確識別率99.5%,支持yolov5-11, coco json,darknet,xml格式標注

停車場停車位數據集&#xff0c;標注停車位上是否有車&#xff0c;平均正確識別率98.0&#xff05;&#xff0c;支持yolov5-11&#xff0c; coco json&#xff0c;darknet&#xff0c;xml格式標注 數據集-識別停車場所有車輛的數據集 數據集分割 一共184張圖片 訓練組 89&am…

結合基于標簽置信度的特征選擇方法用于部分多標簽學習-簡介版

假設 部分多標簽學習&#xff08;PML&#xff09;假設&#xff1a;假設樣本的標簽集合中存在偽正標簽&#xff0c;即某些標簽可能是錯誤的。目標是從候選標簽集中識別出真實標簽。特征與標簽的關系假設&#xff1a;假設不同的標簽對應的特征子空間可能是不同的&#xff0c;而不…

Lora微LLAMA模型實戰

引言 本文介紹如何復現Alpaca-lora&#xff0c;即基于alpaca數據集用lora方法微調Llama模型。 環境準備 實驗環境用的是lanyun&#xff0c;新用戶點擊注冊可以送算力。 下載huggingface上的模型是一個令人頭疼的問題&#xff0c;但在lanyun上可以通過在終端運行source /etc…

Maven常見問題匯總

Maven刷新,本地倉庫無法更新 現象 This failure was cached in the local repository and resolution is not reattempted until the update interval of aliyunmaven has elapsed or updates are forced原因 因為上一次嘗試下載&#xff0c;發現對應的倉庫沒有這個maven配置…

什么是站群服務器?站群服務器應該怎么選?

站群服務器是專門用于托管和管理多個網站的服務器。通常用于SEO優化、內容分發、廣告推廣等場景&#xff0c;用戶可以通過一個服務器管理多個站點&#xff0c;提升效率并降低成本。選擇站群服務器時&#xff0c;需根據業務需求、性能要求、IP資源等因素進行綜合考慮。 什么是站…

分享一個項目中遇到的一個算法題

需求背景&#xff1a; 需求是用戶要創建一個任務計劃在未來執行&#xff0c;要求在創建任務計劃的時候判斷選擇的時間是否符合要求&#xff0c;否則不允許創建&#xff0c;創建的任務類型有兩種&#xff0c;一種是單次&#xff0c;任務只執行一次&#xff1b;另一種是周期&…

【LInux進程六】命令行參數和環境變量

【LInux進程六】命令行參數和環境變量 1.main函數的兩個參數2.利用main函數實現一個簡單的計算器3.環境變量之一&#xff1a;PATH4.修改PATH5.在命令行解釋器bash中查看所有環境變量6.用自己寫的程序查看環境變量7.main函數的第三個參數8.本地的環境變量和環境變量9.環境變量具…

時間軸版本-2.0

文章簡述 這是本人自己封裝的時間軸2.0版本的代碼&#xff0c;用到了TypeScriptJavaScript 這篇文章只有代碼和具體的使用方式&#xff0c;如果想看具體的講解可以參考本人寫的時間軸1.0版本的&#xff0c;在1.0版本中可能計算時間線的邏輯略有不同&#xff0c;但是大致的計算…

大語言模型的壓縮技術

盡管人們對越來越大的語言模型一直很感興趣&#xff0c;但MistralAI 向我們表明&#xff0c;規模只是相對而言的&#xff0c;而對邊緣計算日益增長的興趣促使我們使用小型語言獲得不錯的結果。壓縮技術提供了一種替代方法。在本文中&#xff0c;我將解釋這些技術&#xff0c;并…

大華HTTP協議在智聯視頻超融合平臺中的接入方法

一. 大華HTTP協議介紹 大華HTTP協議是大華股份&#xff08;Dahua Technology&#xff09;為其安防監控設備開發的一套基于HTTP/HTTPS的通信協議&#xff0c;主要用于設備與客戶端&#xff08;如PC、手機、服務器&#xff09;之間的數據交互。該協議支持設備管理、視頻流獲取、…

Linux內核實時機制28 - RT調度器11 - RT 組調度

Linux內核實時機制28 - RT調度器11 - RT 組調度 相關數據結構 內核中通過static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)函數來判斷實時任務運行時間是否超出帶寬限制,判斷這個運行隊列rt_rq的運行時間是否超過了額定的運行時間。而“運行時間”和“額定時間”都…

java,poi,提取ppt文件中的文字內容

注意&#xff0c;不涉及圖片處理。 先上pom依賴&#xff1a; <!-- 處理PPTX文件 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency><!--…