学习lua结合unity遇到错误信息的解决方法

2023-11-18

require "uiDefine"

报错信息:module 'uiDefine' not found:

no fieldpackage.preload['uiDefine']

no such builtin lib'uiDefine'

解决方法: 在require "ui.uiDefine" 在基于lua根目录的下require全路径,例如Assets/Scripts/lua为根目录

 

static public class UnityCommonExtension

{

static public void DestroyAllChildren(this GameObject target)

           {

       foreach (Transform child in target.transform)

       {

            GameObject.Destroy(child.gameObject);

       }

    }

}

for i = 1, #headIconParent do

                   headIconParent[i]:DestroyAllChildren()

End

         如果

public static class LuaGenConfig

{

   //lua中要使用到C#库的配置,比如C#标准库,或者UnityAPI,第三方库等。

   [LuaCallCSharp]

   public static List<Type> LuaCallCSharp = new List<Type>()

{

//typeof(UnityCommonExtension),

}

}

报错信息: attemptto call a nil value (method 'DestroyAllChildren')

解决方法:

for i = 1, #headIconParent do

                   CS.UnityCommonExtension.DestroyAllChildren(headIconParent[i])

End

或者 LuaGenConfig添加上,然后用 headIconParent[i]:DestroyAllChildren()

或 headIconParent[i].DestroyAllChildren(headIconParent[i])即可

                  

for i = 1, pairs(headIconParent) do end

报错信息:'for'limit must be a number

解决方法:用 for i= 1, #headIconParent do end

而for k, v pairs(headIconParent) do end 也可以

C# 的数组传到lua里,

local widgets = {}--go:GetComponentsInChildren("UIWidget",true)    

           local widArr =InterfaceForLua.GetWidgetArray(go)

           for i = 0, widArr.Length - 1 do

             table.insert(widgets, widArr[i])

           end

但是c#的list传到lua里就不能被识别。

如果定义的是方法,要写function()#### end, 否则不写会执行调用的函数,而不是传进去的方法。

定义的 lua方法,:定义:调用,.定义.调用 , :也用在c#静态方法的调用,省去self

function UIItemIconInfo:CreateItemIcon(itemNum, parent, uniqueName)

         local go =ResUtil.LoadGameObject("UI/CommonIcon/ItemIconInfoLua")

    local script = {}

         setmetatable(script,{__index = UIItemIconInfo}

script.gameObject = go

    script.Data = itemNum

         script.eName =uniqueName

        

         script:InitEvent()

        

    script:awake()

    script:onBindComplete()

script:start()

      

    if parent ~= nil then

     parent:AddChildEx(go.transform)

    end

    go.name =string.format("Item%s", tostring(itemNum.ItemId))

    if parent ~= nil andparent:GetComponent("UIWidget") ~= nil then

      local parentDepth =parent:GetComponent("UIWidget").depth

      local widgets = {}   localwidArr = InterfaceForLua.GetWidgetArray(go)

           for i = 0, widArr.Length - 1 do

             table.insert(widgets, widArr[i])

           end

           for k in pairs(widgets) do

                   widgets[k].depth= widgets[k].depth + parentDepth

           end

    end

         return script

end

function UIItemIconInfo:onBindComplete()

  self:SetMask(false)

  self:ItemIconCanClick(true)

 self:AddDragScrollView(false, nil)

 self:SetItemIconScale(Vector3.one)

 self:SetBackGroundVisable(true, true)

         self:SetSelectHide(true)

end

function UIItemIconInfo:SetMask(bVis)

  Mask:SetActive(bVis)

End

self 与单例的使用

这些就是lua单例的使用方法

local widgets = {}

local widArr = InterfaceForLua.GetWidgetArray(go) –这个是c#传过来的UIWidget[]

logError(typeof(widgets).."  "..typeof(widArr))  --  table  userdata

--widgets = widArr  --如果能成功,表相等,是引用,一个改另一个跟着改

         table.insert(widgets,widArr) --如果能成功,表insert,是独立的表

报错信息:attemptto get length of a userdata value

解决方法:遍历userdata,进行插入表

for i = 0, widArr.Length - 1 do

         table.insert(widgets,widArr[i])

end

---------for循环

for i = 1, #widgets do

widgets[i].depth = widgets[i].depth + parentDepth

end

        

for k in pairs(widgets) do

print(k)

         widgets[k].depth = widgets[k].depth +parentDepth

end

-------这两个一样的作用

local widArr = InterfaceForLua.GetWidgetArray(go)  加入local 变量  widArr.Length获取长度 5.2之前table.getn

LuaException: ui.CommonIcon.UIItemIconInfoLua:157: attempt toperform arithmetic on a nil value (field 'depth')

stack traceback:

         ui.CommonIcon.UIItemIconInfoLua:157:in field 'CreateItemIcon'

解决方法:

LuaException: c# exception:Non-static method requires atarget.,stack:  atSystem.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlagsinvokeAttr, System.Reflection.Binder binder, System.Object[] parameters,System.Globalization.CultureInfo culture) [0x000fe] in/Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:236

  atSystem.Reflection.MethodBase.Invoke (System.Object obj, System.Object[]parameters) [0x00000] in/Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115

  atXLua.OverloadMethodWrap.Call (IntPtr L) [0x00151] inE:\AAAA\project\client\AAAA\Assets\XLua\Src\MethodWarpsCache.cs:220

  at XLua.MethodWrap.Call(IntPtr L) [0x00036] inE:\AAAA\project\client\AAAA\Assets\XLua\Src\MethodWarpsCache.cs:260

stack traceback:

         [C]: in field'SetActive'

解决方法:'SetActive'不是static方法,要用:访问

UIItemIconInfo script = go:GetComponent('UIItemIconInfo')

报错信息:syntax error near 'script'

解决方法:声明为local即可

go.transform.localScale =CS.UnityEngine.Vector3(0.7f, 0.7f, 0.7f) (lua中没有new)

报错信息:malformed number near '0.7f'

解决方法:把f去掉,lua没有integer和float类型之分,数值都是用number类型表示的,

attempt to perform arithmetic on a stringvalue

stack traceback:

解决方案:这个写成的c#的语法了,把+ 变成.. 例如print("AAAAAAAAbbb: " + tostring(Data.Reward.Count))

LuaException: error loading modulecoruntine_test from resource, coruntine_test.lua:29: syntax error near 'local'

stack traceback:

         [C]:in ?

         [C]:in function 'require'

         [string"chunk"]:1: in main chunk

解决方法:29行调用到地方检查,就到了require 的地方,比如检查 = 号赋值

LuaException: [string"LuaBehaviour"]:32: attempt to index a thread value (global 'co')

stack traceback:

         [string"LuaBehaviour"]:32: in function <[string"LuaBehaviour"]:22>

XLua.LuaEnv.ThrowExceptionFromError (Int32oldTop) (at Assets/XLua/Src/LuaEnv.cs:411)

XLuaGenDelegateImpl0.Invoke7(UnityEngine.GameObject go)

UIEventListener.OnClick () (atAssets/NGUI/Scripts/Internal/UIEventListener.cs:53)

解决方法:直接调用 lua 的协程报错, 然后用包装 Unity 协程 的方法解决

table.getn()提示 attempt to call a nil value (field'getn')

解决方法:Usethe length operator # asin #foo.

table.getn wasdeprecated in 5.1 and removed in 5.2.

functiontable.getn(x) local ret for i in pairs(x) do ret=ret+1 end return ret end

InvalidCastException: This interface mustadd to CSharpCallLua: UIItemIconInfo+myInter

XLua.CodeEmit.EmitInterfaceImpl(System.Type to_be_impl) (at Assets/ThirdParty/XLua/Src/CodeEmit.cs:349)

XLua.ObjectTranslator.CreateInterfaceBridge(IntPtr L, System.Type interfaceType, Int32 idx) (atAssets/ThirdParty/XLua/Src/ObjectTranslator.cs:436)

XLua.ObjectCasters+<genCaster>c__AnonStorey0.<>m__2(IntPtr L, Int32 idx, System.Object target) (atAssets/ThirdParty/XLua/Src/ObjectCasters.cs:447)

XLua.ObjectTranslator.GetObject (IntPtr L,Int32 index, System.Type type) (atAssets/ThirdParty/XLua/Src/ObjectTranslator.cs:656)

XLua.ObjectTranslator.Get[myInter] (IntPtrL, Int32 index, myInter& v) (atAssets/ThirdParty/XLua/Src/ObjectTranslator.cs:669)

解决方法:加上[CSharpCallLua]

LuaException:assets/bundles//lua/logicBase/GenerateLuaData.lua:6: attempt to index a nilvalue (global 'GenerateLuaData')

stack traceback:

         assets/bundles//lua/logicBase/GenerateLuaData.lua:6:in main chunk

         [C]:in function 'require'

         assets/bundles//lua/logicBase/EnterLua.lua:4:in main chunk

         [C]:in function 'require'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Main.lua:2:in main chunk

         [C]:in function 'require'

         [string"chunk"]:1: in main chunk

XLua.LuaEnv.ThrowExceptionFromError (Int32oldTop) (at Assets/ThirdParty/XLua/Src/LuaEnv.cs:411)

XLua.LuaEnv.DoString (System.String chunk,System.String chunkName, XLua.LuaTable env) (atAssets/ThirdParty/XLua/Src/LuaEnv.cs:248)

LuaFramework.LuaManager.StartMain () (atAssets/LuaFramework/Scripts/Manager/LuaManager.cs:52)

LuaFramework.LuaManager.InitStart () (atAssets/LuaFramework/Scripts/Manager/LuaManager.cs:21)

LuaFramework.GameManager.OnInitialize ()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:252)

LuaFramework.GameManager.OnResourceInited() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:247)

LuaFramework.GameManager+<OnUpdateResource>c__Iterator1.MoveNext() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:133)

UnityEngine.SetupCoroutine.InvokeMoveNext(IEnumerator enumerator, IntPtr returnValueAddress) (atC:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)

LuaFramework.GameManager:CheckExtractResource()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:58)

LuaFramework.GameManager:Init() (atAssets/LuaFramework/Scripts/Manager/GameManager.cs:30)

LuaFramework.GameManager:Awake() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:20)

UnityEngine.GameObject:AddComponent()

LuaFramework.Facade:AddManager(String) (atAssets/LuaFramework/Scripts/Framework/Core/Facade.cs:109)

StartUpCommand:Execute(IMessage) (atAssets/LuaFramework/Scripts/Controller/Command/StartUpCommand.cs:26)

LuaFramework.Controller:ExecuteCommand(IMessage)(at Assets/LuaFramework/Scripts/Framework/Core/Controller.cs:76)

LuaFramework.Facade:SendMessageCommand(String,Object) (at Assets/LuaFramework/Scripts/Framework/Core/Facade.cs:84)

LuaFramework.AppFacade:StartUp() (atAssets/LuaFramework/Scripts/Framework/AppFacade.cs:35)

LuaFramework.Main:Start() (atAssets/LuaFramework/Scripts/Main.cs:10)

解决方法:在lua文件里声明

GenerateLuaData = {}

local this = GenerateLuaData

LuaException: c# exception:c# exception:c#exception:Non-static method requires a target.,stack:  at System.Reflection.MonoMethod.Invoke(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[]parameters, System.Globalization.CultureInfo culture) [0x000fe] in/Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:236

  atSystem.Reflection.MethodBase.Invoke (System.Object obj, System.Object[]parameters) [0x00000] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115

  atXLua.OverloadMethodWrap.Call (IntPtr L) [0x00151] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Src\MethodWarpsCache.cs:220

  atXLua.MethodWrap.Call (IntPtr L) [0x00065] in E:\AAAA_XLua\Assets\ThirdParty\XLua\Src\MethodWarpsCache.cs:267

stack traceback:

         [C]:in field 'ItemIconCanClick'

         assets/bundles//lua/Controller/ItemTipsCtrl.lua:56:in function <assets/bundles//lua/Controller/ItemTipsCtrl.lua:43>

         [C]:in method 'LoadPrefabForLua'

         assets/bundles//lua/Controller/ItemTipsCtrl.lua:32:in function <assets/bundles//lua/Controller/ItemTipsCtrl.lua:22>

         [C]:in method 'CreatePanel'

         assets/bundles//lua/Controller/ItemTipsCtrl.lua:18:in field 'Awake'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Logic/EnterLua.lua:33:in field 'OnInitOK'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Main.lua:6:in function 'Main'

         [string"chunk"]:1: in main chunk,stack: at XLua.LuaEnv.ThrowExceptionFromError (Int32 oldTop) [0x00041] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaEnv.cs:411

  atXLua.LuaFunction.Call (System.Object[] args, System.Type[] returnTypes)[0x0008c] in E:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaFunction.cs:168

  atXLua.LuaFunction.Call (System.Object[] args) [0x00004] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaFunction.cs:183

  atResUtil.LoadPrefabForLua (System.String path, XLua.LuaFunction func) [0x0003f]in E:\AAAA_XLua\Assets\Scripts\KLib\common\ResUtil.cs:21

  at(wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke(object,object[],System.Exception&)

  atSystem.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlagsinvokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfoculture) [0x000d0] in/Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222

stack traceback:

         [C]:in method 'LoadPrefabForLua'

         assets/bundles//lua/Controller/ItemTipsCtrl.lua:32:in function <assets/bundles//lua/Controller/ItemTipsCtrl.lua:22>

         [C]:in method 'CreatePanel'

         assets/bundles//lua/Controller/ItemTipsCtrl.lua:18:in field 'Awake'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Logic/EnterLua.lua:33:in field 'OnInitOK'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Main.lua:6:in function 'Main'

         [string"chunk"]:1: in main chunk,stack: at XLua.LuaEnv.ThrowExceptionFromError (Int32 oldTop) [0x00041] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaEnv.cs:411

  atXLua.LuaFunction.Call (System.Object[] args, System.Type[] returnTypes)[0x0008c] in E:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaFunction.cs:168

  atXLua.LuaFunction.Call (System.Object[] args) [0x00004] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaFunction.cs:183

  atLuaFramework.PanelManager.CreatePanel (System.String name, XLua.LuaFunctionfunc) [0x000cb] inE:\AAAA_XLua\Assets\LuaFramework\Scripts\Manager\PanelManager.cs:68

  at(wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke(object,object[],System.Exception&)

  atSystem.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlagsinvokeAttr, System.Reflection.Binder binder, System.Object[] parameters,System.Globalization.CultureInfo culture) [0x000d0] in/Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222

stack traceback:

         [C]:in method 'CreatePanel'

         assets/bundles//lua/Controller/ItemTipsCtrl.lua:18:in field 'Awake'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Logic/EnterLua.lua:33:in field 'OnInitOK'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Main.lua:6:in function 'Main'

         [string"chunk"]:1: in main chunk

XLua.LuaEnv.ThrowExceptionFromError (Int32oldTop) (at Assets/ThirdParty/XLua/Src/LuaEnv.cs:411)

XLua.LuaEnv.DoString (System.String chunk,System.String chunkName, XLua.LuaTable env) (atAssets/ThirdParty/XLua/Src/LuaEnv.cs:248)

LuaFramework.LuaManager.StartMain () (atAssets/LuaFramework/Scripts/Manager/LuaManager.cs:52)

LuaFramework.LuaManager.InitStart () (atAssets/LuaFramework/Scripts/Manager/LuaManager.cs:21)

LuaFramework.GameManager.OnInitialize ()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:252)

LuaFramework.GameManager.OnResourceInited() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:247)

LuaFramework.GameManager+<OnUpdateResource>c__Iterator1.MoveNext() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:133)

UnityEngine.SetupCoroutine.InvokeMoveNext(IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)

LuaFramework.GameManager:CheckExtractResource()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:58)

LuaFramework.GameManager:Init() (atAssets/LuaFramework/Scripts/Manager/GameManager.cs:30)

LuaFramework.GameManager:Awake() (atAssets/LuaFramework/Scripts/Manager/GameManager.cs:20)

UnityEngine.GameObject:AddComponent()

LuaFramework.Facade:AddManager(String) (at Assets/LuaFramework/Scripts/Framework/Core/Facade.cs:109)

StartUpCommand:Execute(IMessage) (atAssets/LuaFramework/Scripts/Controller/Command/StartUpCommand.cs:25)

LuaFramework.Controller:ExecuteCommand(IMessage)(at Assets/LuaFramework/Scripts/Framework/Core/Controller.cs:76)

LuaFramework.Facade:SendMessageCommand(String,Object) (at Assets/LuaFramework/Scripts/Framework/Core/Facade.cs:84)

LuaFramework.AppFacade:StartUp() (atAssets/LuaFramework/Scripts/Framework/AppFacade.cs:35)

LuaFramework.Main:Start() (atAssets/LuaFramework/Scripts/Main.cs:10)

LuaException: c#exception:XLua.LuaException:E:/AAAA_XLua/Assets/LuaFramework/Lua/Controller/PromptCtrl.lua:39:attempt to call a nil value (method 'LoadPrefabForLuabb')

stack traceback:

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Controller/PromptCtrl.lua:39:in function<E:/AAAA_XLua/Assets/LuaFramework/Lua/Controller/PromptCtrl.lua:23>

         [C]:in method 'CreatePanel'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Controller/PromptCtrl.lua:19:in method 'Awake'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Logic/Game.lua:39:in function<E:/AAAA_XLua/Assets/LuaFramework/Lua/Logic/Game.lua:24>

  atXLua.LuaEnv.ThrowExceptionFromError (Int32 oldTop) [0x00041] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaEnv.cs:411

  atXLua.LuaFunction.Call (System.Object[] args, System.Type[] returnTypes)[0x0008c] in E:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaFunction.cs:168

  atXLua.LuaFunction.Call (System.Object[] args) [0x00004] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Src\LuaFunction.cs:183

  atLuaFramework.PanelManager.CreatePanel (System.String name, XLua.LuaFunctionfunc) [0x000b9] inE:\AAAA_XLua\Assets\LuaFramework\Scripts\Manager\PanelManager.cs:67

  atXLua.CSObjectWrap.LuaFrameworkPanelManagerWrap._m_CreatePanel (IntPtr L)[0x00082] inE:\AAAA_XLua\Assets\ThirdParty\XLua\Gen\LuaFrameworkPanelManagerWrap.cs:91

stack traceback:

         [C]:in method 'CreatePanel'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Controller/PromptCtrl.lua:19:in method 'Awake'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Logic/Game.lua:39:in function<E:/AAAA_XLua/Assets/LuaFramework/Lua/Logic/Game.lua:24>

XLua.LuaEnv.ThrowExceptionFromError (Int32oldTop) (at Assets/ThirdParty/XLua/Src/LuaEnv.cs:411)

XLua.LuaFunction.Call (System.Object[]args, System.Type[] returnTypes) (atAssets/ThirdParty/XLua/Src/LuaFunction.cs:168)

XLua.LuaFunction.Call (System.Object[]args) (at Assets/ThirdParty/XLua/Src/LuaFunction.cs:183)

LuaFramework.LuaManager.CallFunction(System.String funcName, System.Object[] args) (atAssets/LuaFramework/Scripts/Manager/LuaManager.cs:145)

LuaFramework.Util.CallMethod (System.Stringmodule, System.String func, System.Object[] args) (at Assets/LuaFramework/Scripts/Utility/Util.cs:303)

LuaFramework.GameManager.OnInitialize ()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:239)

LuaFramework.GameManager.OnResourceInited() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:230)

LuaFramework.GameManager+<OnUpdateResource>c__Iterator1.MoveNext() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:116)

UnityEngine.SetupCoroutine.InvokeMoveNext(IEnumerator enumerator, IntPtr returnValueAddress) (atC:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)

LuaFramework.GameManager:CheckExtractResource()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:41)

LuaFramework.GameManager:Init() (atAssets/LuaFramework/Scripts/Manager/GameManager.cs:29)

LuaFramework.GameManager:Awake() (atAssets/LuaFramework/Scripts/Manager/GameManager.cs:20)

UnityEngine.GameObject:AddComponent()

Facade:AddManager(String) (atAssets/LuaFramework/Scripts/Framework/Core/Facade.cs:87)

StartUpCommand:Execute(IMessage) (atAssets/LuaFramework/Scripts/Controller/Command/StartUpCommand.cs:25)

Controller:ExecuteCommand(IMessage) (atAssets/LuaFramework/Scripts/Framework/Core/Controller.cs:57)

Facade:SendMessageCommand(String, Object)(at Assets/LuaFramework/Scripts/Framework/Core/Facade.cs:66)

AppFacade:StartUp() (atAssets/LuaFramework/Scripts/Framework/AppFacade.cs:34)

LuaFramework.Main:Start() (atAssets/LuaFramework/Scripts/Main.cs:11)

把工程里的SoundManager 改成Lua调用的脚本报错信息:

LuaException: c# exception:System.InvalidCastException:Cannot cast from source type to destination type.

  at<0x00000> <unknown method>

  atFacade.GetManager[SoundManager] (System.String typeName) [0x0002e] inE:\AAAA_XLua\Assets\LuaFramework\Scripts\Framework\Core\Facade.cs:101

  atLuaFramework.LuaHelper.GetSoundManager () [0x0000b] inE:\AAAA_XLua\Assets\LuaFramework\Scripts\Utility\LuaHelper.cs:52

  atXLua.CSObjectWrap.LuaFrameworkLuaHelperWrap._m_GetSoundManager_xlua_st_ (IntPtrL) [0x0000f] in E:\AAAA_XLua\Assets\ThirdParty\XLua\Gen\LuaFrameworkLuaHelperWrap.cs:179

stack traceback:

         [C]:in field 'GetSoundManager'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Common/define.lua:40:in main chunk

         [C]:in function 'require'

         E:/AAAA_XLua/Assets/LuaFramework/Lua/Main.lua:1:in main chunk

         [C]:in function 'require'

         [string"chunk"]:1: in main chunk

XLua.LuaEnv.ThrowExceptionFromError (Int32oldTop) (at Assets/ThirdParty/XLua/Src/LuaEnv.cs:411)

XLua.LuaEnv.DoString (System.String chunk,System.String chunkName, XLua.LuaTable env) (atAssets/ThirdParty/XLua/Src/LuaEnv.cs:248)

LuaFramework.LuaManager.StartMain () (atAssets/LuaFramework/Scripts/Manager/LuaManager.cs:55)

LuaFramework.LuaManager.InitStart () (atAssets/LuaFramework/Scripts/Manager/LuaManager.cs:25)

LuaFramework.GameManager.OnInitialize ()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:235)

LuaFramework.GameManager.OnResourceInited() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:230)

LuaFramework.GameManager+<OnUpdateResource>c__Iterator1.MoveNext() (at Assets/LuaFramework/Scripts/Manager/GameManager.cs:116)

UnityEngine.SetupCoroutine.InvokeMoveNext(IEnumerator enumerator, IntPtr returnValueAddress) (atC:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)

LuaFramework.GameManager:CheckExtractResource()(at Assets/LuaFramework/Scripts/Manager/GameManager.cs:41)

LuaFramework.GameManager:Init() (atAssets/LuaFramework/Scripts/Manager/GameManager.cs:29)

LuaFramework.GameManager:Awake() (atAssets/LuaFramework/Scripts/Manager/GameManager.cs:20)

UnityEngine.GameObject:AddComponent()

Facade:AddManager(String) (atAssets/LuaFramework/Scripts/Framework/Core/Facade.cs:87)

StartUpCommand:Execute(IMessage) (atAssets/LuaFramework/Scripts/Controller/Command/StartUpCommand.cs:24)

Controller:ExecuteCommand(IMessage) (atAssets/LuaFramework/Scripts/Framework/Core/Controller.cs:57)

Facade:SendMessageCommand(String, Object)(at Assets/LuaFramework/Scripts/Framework/Core/Facade.cs:66)

AppFacade:StartUp() (atAssets/LuaFramework/Scripts/Framework/AppFacade.cs:34)

LuaFramework.Main:Start() (atAssets/LuaFramework/Scripts/Main.cs:11)

解决方法:看报错的堆栈,看到define.lua:40: in main chunk (产生了二义性)

开启HOTFIX_ENABLE, 并且Generate Code 之后 运行main.unity3d,关闭之后,报错:

NullReferenceException: Object referencenot set to an instance of an object

XLua.LuaBase.Dispose (BooleandisposeManagedResources) (at Assets/ThirdParty/XLua/Src/LuaBase.cs:65)

XLua.LuaBase.Dispose () (atAssets/ThirdParty/XLua/Src/LuaBase.cs:48)

LuaFramework.LuaView.ClearClick () (atAssets/LuaFramework/Scripts/Common/LuaBehaviour.cs:63)

LuaFramework.LuaView.OnDestroy () (atAssets/LuaFramework/Scripts/Common/LuaBehaviour.cs:71)

Internal_CreateGameObject is not allowed tobe called from a MonoBehaviour constructor (or instance field initializer),call it in Awake or Start instead. Called from MonoBehaviour 'SoundManager' ongame object 'GameManager'.

See "Script Serialization" pagein the Unity Manual for further details.

UnityEngine.GameObject:.ctor(String)

SoundPlayer:.ctor(Int32) (atAssets/Scripts/common/SoundManager.cs:84)

SoundManager:.cctor() (atAssets/Scripts/common/SoundManager.cs:21)

UnityEngine.GameObject:AddComponent()

Facade:AddManager(String) (atAssets/LuaFramework/Scripts/Framework/Core/Facade.cs:87)

StartUpCommand:Execute(IMessage) (atAssets/LuaFramework/Scripts/Controller/Command/StartUpCommand.cs:18)

Controller:ExecuteCommand(IMessage) (atAssets/LuaFramework/Scripts/Framework/Core/Controller.cs:57)

Facade:SendMessageCommand(String, Object)(at Assets/LuaFramework/Scripts/Framework/Core/Facade.cs:66)

AppFacade:StartUp() (atAssets/LuaFramework/Scripts/Framework/AppFacade.cs:34)

LuaFramework.Main:Start() (atAssets/LuaFramework/Scripts/Main.cs:11)

UNetWeaver error: Exception:System.MissingMethodException: Method not found:'Mono.Cecil.ModuleDefinition.ImportReference'.

  atUnity.UNetWeaver.Weaver.Weave (System.String assName, IEnumerable`1dependencies, IAssemblyResolver assemblyResolver, System.String unityEngineDLLPath,System.String unityUNetDLLPath, System.String outputDir) [0x0004b] inC:\buildslave\unity\build\Extensions\Networking\Weaver\UNetWeaver.cs:1713

  atUnity.UNetWeaver.Weaver.WeaveAssemblies (IEnumerable`1 assemblies,IEnumerable`1 dependencies, IAssemblyResolver assemblyResolver, System.StringoutputDir, System.String unityEngineDLLPath, System.String unityUNetDLLPath)[0x0006e] inC:\buildslave\unity\build\Extensions\Networking\Weaver\UNetWeaver.cs:1837

UnityEngine.DebugLogHandler:Internal_Log(LogType,String, Object)

UnityEngine.DebugLogHandler:LogFormat(LogType,Object, String, Object[])

UnityEngine.Logger:Log(LogType, Object)

UnityEngine.Debug:LogError(Object)

Unity.UNetWeaver.Log:Error(String) (atC:\buildslave\unity\build\Extensions\Networking\Weaver\Program.cs:20)

Unity.UNetWeaver.Weaver:WeaveAssemblies(IEnumerable`1,IEnumerable`1, IAssemblyResolver, String, String, String) (atC:\buildslave\unity\build\Extensions\Networking\Weaver\UNetWeaver.cs:1844)

Unity.UNetWeaver.Program:Process(String,String, String, String[], String[], IAssemblyResolver, Action`1, Action`1) (atC:\buildslave\unity\build\Extensions\Networking\Weaver\Program.cs:34)

UnityEditor.Scripting.Serialization.Weaver:WeaveInto(String,String, String, String, String[], IAssemblyResolver) (atC:\buildslave\unity\build\Editor\Mono\Scripting\Serialization\Weaver.cs:104)

UnityEditor.Scripting.Serialization.Weaver:WeaveUnetFromEditor(String,String, String, String, Boolean) (atC:\buildslave\unity\build\Editor\Mono\Scripting\Serialization\Weaver.cs:74)

(Filename:C:/buildslave/unity/build/Extensions/Networking/Weaver/Program.cs Line: 20)

解决方法:

The way it worked for me was removing the oldinstallation of Unity that I still had on the mac. Also, I removed Unity 5.4.1and installed 5.4.1 again now on a complete Unity free system. That made theerror disappear.

Failure generating network code.

UnityEngine.DebugLogHandler:Internal_Log(LogType,String, Object)

UnityEngine.DebugLogHandler:LogFormat(LogType,Object, String, Object[])

UnityEngine.Logger:Log(LogType, Object)

UnityEngine.Debug:LogError(Object)

UnityEditor.Scripting.Serialization.Weaver:WeaveInto(String,String, String, String, String[], IAssemblyResolver) (atC:\buildslave\unity\build\Editor\Mono\Scripting\Serialization\Weaver.cs:106)

UnityEditor.Scripting.Serialization.Weaver:WeaveUnetFromEditor(String,String, String, String, Boolean) (atC:\buildslave\unity\build\Editor\Mono\Scripting\Serialization\Weaver.cs:74)

(Filename:C:/buildslave/unity/build/Editor/Mono/Scripting/Serialization/Weaver.cs Line:106)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习lua结合unity遇到错误信息的解决方法 的相关文章

随机推荐

  • 阿里云大数据专业认证(ACP级)学习笔记(精简) ...

    阿里云大数据专业认证 ACP级 学习笔记 精简 近百个视频精华考点总结 眼都快肿了 ODPS 流计算用的是ODPS ODPS的所有对象都隶属于项目空间 项目空间project 表table 表中的列支持Bigint长整 Double双精 S
  • Pytorch中tensor与numpy类型数据在GPU和CPU之间的转换

    1 CPU tensor转GPU tensor cpu imgs cuda 2 GPU tensor 转CPU tensor gpu imgs cpu 3 numpy转为CPU tensor torch from numpy imgs 4
  • 华为OD机试-查找充电设备组合-2022Q4 A卷-Py/Java/JS

    某个充电站 可提供n个充电设备 每个充电设备均有对应的输出功率 任意个充电设备组合的输出功率总和 均构成功率集合P的1个元素 功率集合P的最优元素 表示最接近充电站最大输出功率P max的元素 输入描述 输入为3行 第1行为充电设备个数n
  • 论文解读:Personalize Segment Anything Model with One Shot

    发表时间 2023 5 4 项目地址 https github com ZrrSkywalker Personalize SAM 体验地址 https huggingface co spaces justin zk Personalize
  • FFMPEG 合并视频文件(无损)

    FFMPEG 合并视频文件 无损 前言 最近在做视频转码相关业务 但是片源商给了一些DVD的零散视频片段 需要自己去合并片段并进行业务转码 本篇文章主要记录视频合并的过程及常见的合并方式 环境 FFMPEG BUILDS 4 4 1 FFm
  • [Pytorch系列-62]:生成对抗网络GAN - 基本原理 - 自动生成手写数字案例分析

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121914862 目录 第1章 基本原
  • 这三款软件让你轻松实现在线扫花识别植物

    如今 鲜花是我们日常生活中最常见的植物 但是随着鲜花种类的不断增多 它的许多的种类信息 想必大多数的朋友都难以认识清楚 因此 有的人就会使用一些识别鲜花的APP来帮助我们通过拍照而轻松获知鲜花的信息 那么你们知道识别鲜花的APP都有哪些吗
  • 小型中文版聊天机器人

    入门小菜鸟 希望像做笔记记录自己学的东西 也希望能帮助到同样入门的人 更希望大佬们帮忙纠错啦 侵权立删 目录 一 简单介绍与参考鸣谢 二 数据集介绍 三 数据预处理 1 重复标点符号表达 2 英文标点符号变为中文标点符号 3 繁体字转为简体
  • 【华为OD机试真题 Python语言】5、TLV解析

    文章目录 一 题目 题目描述 输入输出 样例1 二 思路参考 三 代码参考 作者 鲨鱼狼臧 个人博客首页 鲨鱼狼臧 专栏介绍 2023华为OD机试真题 使用Python进行解答 专栏每篇文章都包括真题 思路参考 代码分析 订阅有问题后续可与
  • Ansible 的脚本 --- playbook 剧本

    Ansible 的脚本 playbook 剧本 playbooks 本身由以下各部分组成 编写yaml文件示例 运行playbook 定义 引用变量 指定远程主机sudo切换用户 when条件判断 迭代 Templates 模块 1 先准备
  • 测试平台简介

    测试平台简介 一 被测系统介绍 被测系统为电商后台管理系统 功能模块包括 商品管理 订单管理 会员管理等 登录需要验证码 因没有后台代码 绕不开登录 只能手动获取到cookie 填充进测试用例 遇到真实项目 cookie这块逻辑需要再改造
  • Moonbeam与Nodle网络集成,增添物联网功能

    领先的波卡跨链互连开发平台Moonbeam近期宣布与Nodle Network达成XCM集成 将NODL Token带到Moonbeam生态之中 本次集成将会开启波卡中Moonbeam和Nodle网络以及通过Moonbeam互连合约相连的远
  • 如何在Swift开发中使用CocoaPods导入的第三方库

    今天在用swift写项目时 需要用CocoaPods引入SDWebImage这个三方库 于是开始在Vim命令中创建pod file 在创建之前需要cd到当前项目的目录中 Podfile创建步骤如下 1 创建Podfile touch Pod
  • Selenium自动化测试工具的介绍与使用

    Selenium自动化测试 什么是自动化测试 自动化测试指软件测试的自动化 在预设状态下运行应用程序或者系统 预设条件包括正常和异常 最后评估运行 结果 总的概括即 将人为驱动的测试行为转化为机器执行的过程 进入今天的主角 selenium
  • MSP430F5529学习笔记(1)——环境配置

    CCS下载链接 MSP430F5529官方教学视频 目录 下载 新建工程 创建文件 重要部分按钮介绍 project Explorer没有 下载 我们编写MSP430F5529的程序 需要使用到CCS这个软件 我们进入官网之后 界面如下 点
  • 实时系统HBase读写优化--大量写入无障碍

    在使用hbase过程中发现在写入hbase的数据量很大时 经常发生写不进去的情况 而我们基于hbase的应用是对实时性要求很高的 一旦hbase不能读写则会大大影响系统的使用 下面将记录hbase写优化的过程 1 禁止Major Compa
  • java多线程:线程池和阻塞队列

    一 线程池定义和使用 jdk 1 5 之后就引入了线程池 1 1 定义 从上面的空间切换看得出来 线程是稀缺资源 它的创建与销毁是一个相对偏重且耗资源的操作 而Java线程依赖于内核线程 创建线程需要进行操作系统状态切换 为避免资源过度消耗
  • 微博网站分享按钮

    div class bdsharebuttonbox a class bds weixin a a class bds sqq a a class bds tsina a div
  • Grid布局20行代码快速生成瀑布流

    网格布局 Grid 布局 好用又简单 至少比 Flex 要人性化一点 美中不足就是浏览器支持度差点 DOM结构 中间夹层为了后续拓展 CSS grid display grid grid template columns repeat 2
  • 学习lua结合unity遇到错误信息的解决方法

    require uiDefine 报错信息 module uiDefine not found no fieldpackage preload uiDefine no such builtin lib uiDefine 解决方法 在requ