原创 Live2D的簡單使用

看了下Live2D,研究了下使用,再次簡單的總結下,以便後來查看。 官方網站:http://www.live2d.com/en/ SDK:https://live2d.github.io/#unity 導入后里面有個Sampl

原创 項目後期Lua接入筆記05--網絡協議protobuf在lua中的使用pbc

作爲一個網絡遊戲,不可避免的要和服務端進行數據交互,在數據結構上protobuf是一個不錯的方案,在lua中使用protobuf有多種方案可供選擇,這裏使用的是雲風的pbc. 先去這個網址下載生成工具http://repo1.ma

原创 項目後期Lua接入筆記06--按鈕事件監聽及消息分發

按鈕事件監聽NGUI一般常用的是UIEvenetListener,使用方法一般如下 UIEventListener.Get(gameObject).onClick = BtnClick; 在Lua代碼中使用方式也差不多 UIEve

原创 項目後期Lua接入筆記09--策劃Excel轉Lua

既然要使用lua做熱更新,策劃配表是繞不過去的問題,雖然c#也可以做到熱更,畢竟配表就是純數據,但是使用c#將數據解析到內存的時候,數據格式基本上是固定,幾個字段就幾個字段,字段類型就是那樣了,不夠靈活。 Excel轉成lua網

原创 XLua框架搭建——XLua API與try to dispose a LuaEnv with C# callback

在lua的設計中,有些是c語言與lua相互調用的方法,作爲使用c#的unity,xlua也是用c#來進行編寫,所以我們現在要使用c#代碼來做這些事,xlua提供了相對應的方法,這些方法在LuaAPI類裏。 LuaAPI.lua_getto

原创 XLua框架搭建——lua文件加載,簽名及加密

XLua教程裏面的第一步就是教大家如何去加載一個lua文件,官方推薦的做法是整個程序就一個DoString(“require ‘main’”),然後在main.lua加載其它腳本(類似lua腳本的命令行執行:lua main.lua)。

原创 接入sdk覆蓋AndroidManifest後提示ClassNotFoundException問題

項目接入了一個sdk,由於sdk需要添加新的權限,所以需要在AndroidManifest裏添加相應的語句,由於是第一個需要修改AndroidManifest的sdk,項目裏並沒有對應的AndroidManifest文件,鑑於項目當前的配

原创 XLua框架搭建——lua端改造c#現有類

在Lua端使用unity的一些類時會有一些比較大的性能消耗,比如我們常用的位置賦值操作 transform.position = CS.UnityEngine.Vector3(0,1,0); 如果進行性能測試會發現在性能消耗上需要十多毫秒

原创 XLua框架搭建——LuaBehaviour設計

由於Unity的生命週期問題,一般來說在Lua端都要實現相同的生命週期調用,以便和unity進行銜接。 在官方第二個示例中,有個LuaBehaviour的腳本,演示瞭如何在lua中實現unity的生命週期,原理就是獲取相關函數,然後在c#

原创 XLua框架搭建——print支持文件名和行號及日誌雙擊重定向

xlua的代碼裏在使用的日誌打印的時候會用print來進行,但是print僅僅是打印輸入的數據,而沒有對應的文件名信息和行號,如果文件比較多,日誌也比較多的話,就會覺得很麻煩。 lua提供了調試類debug,可以獲取堆棧等信息,我們可以利

原创 XLua框架搭建——lua性能分析

xlua代碼裏提供了一個性能分析的文檔,裏面提供了兩個工具,一個是《函數調用時長分析工具》,一個是《內存泄漏定位工具》。 關於這兩個工具建議自己擴展,尤其是內存工具這塊,擴展後可以做兩個快照的比對,快速定位到哪個函數出現了問題。 首先說下

原创 XLua框架搭建——lua協程實現

協程在unity中是一個很常用的方法,我們可以利用協程使代碼看起來更連貫,易於理解。xlua在示例6中提供了一個協程的示例。 local util = require 'xlua.util' local gameobject = CS.

原创 XLua框架搭建——Unity的Update循環

unity的生命週期中有一個Update函數,是遊戲的循環,類似的還有FixedUpdate和LateUpdate等,在c#中繼承monobehaviour後unity就會調用對應的函數,根據我們前面的設計《XLua框架搭建——LuaBe

原创 XLua框架搭建——lua oop類設計

面向對象編程是目前比較主流的做法,在lua中並沒有類的概念,只有table,通過table的特性,我們可以自己構造一個類。 關於這方面的資料比較多,就不在說明,不清楚的可以直接百度,這裏提供一個雲風大神的連接 在 Lua 中實現面向對象

原创 XLua框架搭建——Lua定時器的實現

前面介紹了lua中update的實現,利用update,我們可以實現lua的定時器類。 與c#定時器原理一樣,我們需要提供註冊函數與反註冊函數,然後利用update註冊對應的update循環,在update循環裏獲取當前事件,然後遍歷當