Skip to content
This repository was archived by the owner on Jul 11, 2023. It is now read-only.

Commit e61dc7b

Browse files
committed
修改LuaBehaviour,直接使用文本加载lua脚本,环境不会通过require传递
1 parent fc24edc commit e61dc7b

File tree

9 files changed

+244
-19
lines changed

9 files changed

+244
-19
lines changed

Assets/Game/HotFix/Canvas.lua.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
local _testBtn;
2+
13
function Enable()
24
print("Test--UI--Enable")
35
end
@@ -7,6 +9,8 @@ function Disable()
79
end
810

911
function Start()
12+
print(self)
13+
--_testBtn=TestBtn:GetComponent("Button").onclick:AddListener(ButtonClick)
1014
print("Test--UI--Start")
1115
end
1216

@@ -17,3 +21,7 @@ end
1721
function Close()
1822
print("Test--UI--Close")
1923
end
24+
25+
function ButtonClick()
26+
print("button---------------")
27+
end

Assets/Game/HotFix/Main.lua.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ require('UI')
55
function Start()
66
print("start")
77
UI:Open("Canvas")
8-
UI:Close("Canvas",false)
9-
UI:Open("Canvas")
10-
UI:Close("Canvas",true)
11-
UI:Open("Canvas")
128
end
139

1410
function Update()

Assets/Game/HotFix/UI.lua.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ function UI:Open(name)
1515
viewPrefab=Res:LoadAsset(viewPrefab,"ui",path)
1616
view=CS.UnityEngine.GameObject.Instantiate(viewPrefab)
1717
--如果有LuaBehaviour的脚本则执行相应的脚本
18-
luaBehaviour=view:GetComponent("GameFramework.Taurus.LuaBehaviour")
19-
if(luaBehaviour==nil) then
18+
luaBehaviour=view:GetComponent("GameFramework.Taurus.LuaBehaviour")
19+
if(luaBehaviour ~= nil) then
2020
luaBehaviour:Run(name)
2121
end
2222
view:SetActive(true)

Assets/Game/Scripts/Lua/Canvas.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
local _testBtn;
2+
13
function Enable()
24
print("Test--UI--Enable")
35
end
@@ -7,6 +9,8 @@ function Disable()
79
end
810

911
function Start()
12+
print(self)
13+
--_testBtn=TestBtn:GetComponent("Button").onclick:AddListener(ButtonClick)
1014
print("Test--UI--Start")
1115
end
1216

@@ -17,3 +21,7 @@ end
1721
function Close()
1822
print("Test--UI--Close")
1923
end
24+
25+
function ButtonClick()
26+
print("button---------------")
27+
end

Assets/Game/Scripts/Lua/Main.lua

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ require('UI')
55
function Start()
66
print("start")
77
UI:Open("Canvas")
8-
UI:Close("Canvas",false)
9-
UI:Open("Canvas")
10-
UI:Close("Canvas",true)
11-
UI:Open("Canvas")
128
end
139

1410
function Update()

Assets/Game/Scripts/Lua/UI.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ function UI:Open(name)
1515
viewPrefab=Res:LoadAsset(viewPrefab,"ui",path)
1616
view=CS.UnityEngine.GameObject.Instantiate(viewPrefab)
1717
--如果有LuaBehaviour的脚本则执行相应的脚本
18-
luaBehaviour=view:GetComponent("GameFramework.Taurus.LuaBehaviour")
19-
if(luaBehaviour==nil) then
18+
luaBehaviour=view:GetComponent("GameFramework.Taurus.LuaBehaviour")
19+
if(luaBehaviour ~= nil) then
2020
luaBehaviour:Run(name)
2121
end
2222
view:SetActive(true)

Assets/Game/UI/Canvas.prefab

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,49 @@ GameObject:
2222
- component: {fileID: 223916523642856208}
2323
- component: {fileID: 114921435958785688}
2424
- component: {fileID: 114425619669565452}
25+
- component: {fileID: 114926894319671930}
2526
m_Layer: 5
2627
m_Name: Canvas
2728
m_TagString: Untagged
2829
m_Icon: {fileID: 0}
2930
m_NavMeshLayer: 0
3031
m_StaticEditorFlags: 0
3132
m_IsActive: 1
33+
--- !u!1 &1302373970853118
34+
GameObject:
35+
m_ObjectHideFlags: 1
36+
m_CorrespondingSourceObject: {fileID: 0}
37+
m_PrefabInternal: {fileID: 100100000}
38+
serializedVersion: 6
39+
m_Component:
40+
- component: {fileID: 224383803452513838}
41+
- component: {fileID: 222994958534367506}
42+
- component: {fileID: 114768231077690424}
43+
m_Layer: 5
44+
m_Name: Text
45+
m_TagString: Untagged
46+
m_Icon: {fileID: 0}
47+
m_NavMeshLayer: 0
48+
m_StaticEditorFlags: 0
49+
m_IsActive: 1
50+
--- !u!1 &1444559297095232
51+
GameObject:
52+
m_ObjectHideFlags: 0
53+
m_CorrespondingSourceObject: {fileID: 0}
54+
m_PrefabInternal: {fileID: 100100000}
55+
serializedVersion: 6
56+
m_Component:
57+
- component: {fileID: 224959357214218066}
58+
- component: {fileID: 222014485269775612}
59+
- component: {fileID: 114823913322587952}
60+
- component: {fileID: 114619211204977628}
61+
m_Layer: 5
62+
m_Name: Button
63+
m_TagString: Untagged
64+
m_Icon: {fileID: 0}
65+
m_NavMeshLayer: 0
66+
m_StaticEditorFlags: 0
67+
m_IsActive: 1
3268
--- !u!1 &1450190532183066
3369
GameObject:
3470
m_ObjectHideFlags: 0
@@ -139,6 +175,107 @@ MonoBehaviour:
139175
m_FillAmount: 1
140176
m_FillClockwise: 1
141177
m_FillOrigin: 0
178+
--- !u!114 &114619211204977628
179+
MonoBehaviour:
180+
m_ObjectHideFlags: 1
181+
m_CorrespondingSourceObject: {fileID: 0}
182+
m_PrefabInternal: {fileID: 100100000}
183+
m_GameObject: {fileID: 1444559297095232}
184+
m_Enabled: 1
185+
m_EditorHideFlags: 0
186+
m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
187+
m_Name:
188+
m_EditorClassIdentifier:
189+
m_Navigation:
190+
m_Mode: 3
191+
m_SelectOnUp: {fileID: 0}
192+
m_SelectOnDown: {fileID: 0}
193+
m_SelectOnLeft: {fileID: 0}
194+
m_SelectOnRight: {fileID: 0}
195+
m_Transition: 1
196+
m_Colors:
197+
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
198+
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
199+
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
200+
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
201+
m_ColorMultiplier: 1
202+
m_FadeDuration: 0.1
203+
m_SpriteState:
204+
m_HighlightedSprite: {fileID: 0}
205+
m_PressedSprite: {fileID: 0}
206+
m_DisabledSprite: {fileID: 0}
207+
m_AnimationTriggers:
208+
m_NormalTrigger: Normal
209+
m_HighlightedTrigger: Highlighted
210+
m_PressedTrigger: Pressed
211+
m_DisabledTrigger: Disabled
212+
m_Interactable: 1
213+
m_TargetGraphic: {fileID: 114823913322587952}
214+
m_OnClick:
215+
m_PersistentCalls:
216+
m_Calls: []
217+
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
218+
Culture=neutral, PublicKeyToken=null
219+
--- !u!114 &114768231077690424
220+
MonoBehaviour:
221+
m_ObjectHideFlags: 1
222+
m_CorrespondingSourceObject: {fileID: 0}
223+
m_PrefabInternal: {fileID: 100100000}
224+
m_GameObject: {fileID: 1302373970853118}
225+
m_Enabled: 1
226+
m_EditorHideFlags: 0
227+
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
228+
m_Name:
229+
m_EditorClassIdentifier:
230+
m_Material: {fileID: 0}
231+
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
232+
m_RaycastTarget: 1
233+
m_OnCullStateChanged:
234+
m_PersistentCalls:
235+
m_Calls: []
236+
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
237+
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
238+
m_FontData:
239+
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
240+
m_FontSize: 14
241+
m_FontStyle: 0
242+
m_BestFit: 0
243+
m_MinSize: 10
244+
m_MaxSize: 40
245+
m_Alignment: 4
246+
m_AlignByGeometry: 0
247+
m_RichText: 1
248+
m_HorizontalOverflow: 0
249+
m_VerticalOverflow: 0
250+
m_LineSpacing: 1
251+
m_Text: Button
252+
--- !u!114 &114823913322587952
253+
MonoBehaviour:
254+
m_ObjectHideFlags: 1
255+
m_CorrespondingSourceObject: {fileID: 0}
256+
m_PrefabInternal: {fileID: 100100000}
257+
m_GameObject: {fileID: 1444559297095232}
258+
m_Enabled: 1
259+
m_EditorHideFlags: 0
260+
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
261+
m_Name:
262+
m_EditorClassIdentifier:
263+
m_Material: {fileID: 0}
264+
m_Color: {r: 1, g: 1, b: 1, a: 1}
265+
m_RaycastTarget: 1
266+
m_OnCullStateChanged:
267+
m_PersistentCalls:
268+
m_Calls: []
269+
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
270+
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
271+
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
272+
m_Type: 1
273+
m_PreserveAspect: 0
274+
m_FillCenter: 1
275+
m_FillMethod: 4
276+
m_FillAmount: 1
277+
m_FillClockwise: 1
278+
m_FillOrigin: 0
142279
--- !u!114 &114921435958785688
143280
MonoBehaviour:
144281
m_ObjectHideFlags: 1
@@ -160,13 +297,41 @@ MonoBehaviour:
160297
m_FallbackScreenDPI: 96
161298
m_DefaultSpriteDPI: 96
162299
m_DynamicPixelsPerUnit: 1
300+
--- !u!114 &114926894319671930
301+
MonoBehaviour:
302+
m_ObjectHideFlags: 1
303+
m_CorrespondingSourceObject: {fileID: 0}
304+
m_PrefabInternal: {fileID: 100100000}
305+
m_GameObject: {fileID: 1028372202382570}
306+
m_Enabled: 1
307+
m_EditorHideFlags: 0
308+
m_Script: {fileID: 11500000, guid: 87c12306afa849e4b915bd338b9c9541, type: 3}
309+
m_Name:
310+
m_EditorClassIdentifier:
311+
injections:
312+
- name: TestBtn
313+
value: {fileID: 1444559297095232}
314+
--- !u!222 &222014485269775612
315+
CanvasRenderer:
316+
m_ObjectHideFlags: 1
317+
m_CorrespondingSourceObject: {fileID: 0}
318+
m_PrefabInternal: {fileID: 100100000}
319+
m_GameObject: {fileID: 1444559297095232}
320+
m_CullTransparentMesh: 0
163321
--- !u!222 &222171159895976012
164322
CanvasRenderer:
165323
m_ObjectHideFlags: 1
166324
m_CorrespondingSourceObject: {fileID: 0}
167325
m_PrefabInternal: {fileID: 100100000}
168326
m_GameObject: {fileID: 1450190532183066}
169327
m_CullTransparentMesh: 0
328+
--- !u!222 &222994958534367506
329+
CanvasRenderer:
330+
m_ObjectHideFlags: 1
331+
m_CorrespondingSourceObject: {fileID: 0}
332+
m_PrefabInternal: {fileID: 100100000}
333+
m_GameObject: {fileID: 1302373970853118}
334+
m_CullTransparentMesh: 0
170335
--- !u!222 &222998477433665494
171336
CanvasRenderer:
172337
m_ObjectHideFlags: 1
@@ -206,6 +371,7 @@ RectTransform:
206371
m_Children:
207372
- {fileID: 224519018837270310}
208373
- {fileID: 224420622425393734}
374+
- {fileID: 224959357214218066}
209375
m_Father: {fileID: 0}
210376
m_RootOrder: 0
211377
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -214,6 +380,24 @@ RectTransform:
214380
m_AnchoredPosition: {x: 0, y: 0}
215381
m_SizeDelta: {x: 0, y: 0}
216382
m_Pivot: {x: 0, y: 0}
383+
--- !u!224 &224383803452513838
384+
RectTransform:
385+
m_ObjectHideFlags: 1
386+
m_CorrespondingSourceObject: {fileID: 0}
387+
m_PrefabInternal: {fileID: 100100000}
388+
m_GameObject: {fileID: 1302373970853118}
389+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
390+
m_LocalPosition: {x: 0, y: 0, z: 0}
391+
m_LocalScale: {x: 1, y: 1, z: 1}
392+
m_Children: []
393+
m_Father: {fileID: 224959357214218066}
394+
m_RootOrder: 0
395+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
396+
m_AnchorMin: {x: 0, y: 0}
397+
m_AnchorMax: {x: 1, y: 1}
398+
m_AnchoredPosition: {x: 0, y: 0}
399+
m_SizeDelta: {x: 0, y: 0}
400+
m_Pivot: {x: 0.5, y: 0.5}
217401
--- !u!224 &224420622425393734
218402
RectTransform:
219403
m_ObjectHideFlags: 1
@@ -250,3 +434,22 @@ RectTransform:
250434
m_AnchoredPosition: {x: 0, y: 0}
251435
m_SizeDelta: {x: 100, y: 100}
252436
m_Pivot: {x: 0.5, y: 0.5}
437+
--- !u!224 &224959357214218066
438+
RectTransform:
439+
m_ObjectHideFlags: 1
440+
m_CorrespondingSourceObject: {fileID: 0}
441+
m_PrefabInternal: {fileID: 100100000}
442+
m_GameObject: {fileID: 1444559297095232}
443+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
444+
m_LocalPosition: {x: 0, y: 0, z: 0}
445+
m_LocalScale: {x: 1, y: 1, z: 1}
446+
m_Children:
447+
- {fileID: 224383803452513838}
448+
m_Father: {fileID: 224126217176054038}
449+
m_RootOrder: 2
450+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
451+
m_AnchorMin: {x: 0.5, y: 0.5}
452+
m_AnchorMax: {x: 0.5, y: 0.5}
453+
m_AnchoredPosition: {x: 0, y: 0}
454+
m_SizeDelta: {x: 160, y: 30}
455+
m_Pivot: {x: 0.5, y: 0.5}

Assets/GameFramework/HotFix/HotFixManager.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
namespace GameFramework.Taurus
1717
{
18+
[LuaCallCSharp]
1819
public sealed class HotFixManager:GameFrameworkModule,IUpdate
1920
{
2021
//lua的环境变量
@@ -65,7 +66,7 @@ public void LoadHotFix(string assetBundle="hotfix",string luaScript="main",
6566

6667
_scriptEnv.Set("self", this);
6768
LuaEnv.AddLoader(CustomLoader);
68-
LuaEnv.DoString($"require '{luaScript}'", "LuaHotFix", _scriptEnv);
69+
LuaEnv.DoString($"require '{luaScript}'", luaScript, _scriptEnv);
6970
_scriptEnv.Get("Start", out _start);
7071
_scriptEnv.Get("Update", out _update);
7172
_scriptEnv.Get("Close", out _close);
@@ -76,11 +77,21 @@ public void LoadHotFix(string assetBundle="hotfix",string luaScript="main",
7677
//自定义加载
7778
private byte[] CustomLoader(ref string filePath)
7879
{
79-
filePath= System.IO.Path.Combine(_luaPathPrefix, $"{filePath}.lua");
80-
string path = $"{filePath}.txt";// System.IO.Path.Combine(_luaPathPrefix, $"{filePath}.lua.txt");
80+
string path = System.IO.Path.Combine(_luaPathPrefix, $"{filePath}{_luaPathExtension}");
8181
return _resource.LoadAsset<TextAsset>(_luaAssetBundle,path).bytes;
8282
}
8383

84+
/// <summary>
85+
/// 加载lua的文本
86+
/// </summary>
87+
/// <param name="name"></param>
88+
/// <returns></returns>
89+
public string LuaScriptLoader(string name)
90+
{
91+
string path = System.IO.Path.Combine(_luaPathPrefix, $"{name}{_luaPathExtension}");
92+
return _resource.LoadAsset<TextAsset>(_luaAssetBundle, path).text;
93+
}
94+
8495
public void OnUpdate()
8596
{
8697
_update?.Invoke();

0 commit comments

Comments
 (0)