• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

xlua怎么样hotfixC#中的重写方法???

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

问题的来源之这样的:

线上项目遇到一个问题,就是子类 override 了父类的一个 virtual 方法,并且调用到了父类里面的 virtual 方法。现在子类  override 的方法里有一些错误逻辑,希望通过 xlua 去修复。类似如下的代码:

 1 using System;
 2 using UnityEngine;
 3 
 4 namespace LGSTEST
 5 {
 6     public class LgsParent : MonoBehaviour
 7     {
 8         public virtual void ShowName()
 9         {
10             Debug.Log("parent function!");
11         }
12     }
13 
14     public class Lgs : LgsParent
15     {
16         void Update()
17         {
18             if (Input.GetMouseButtonDown(0))
19             {
20                 ShowName();
21             }
22         }
23 
24         public override void ShowName()
25         {
26             base.ShowName();
27 
28             Debug.Log("child function!");
29 
30             #region 错误的逻辑
31 
32             #endregion
33         }
34     }
35 }

xlua代码:

1 xlua.hotfix(CS.LGSTEST.Lgs, "ShowName", function(self)
2 
3     base(self):ShowName();
4 
5     --[[
6         修复后的逻辑放到这里
7     --]]
8 
9 end)

也就是说 C# 第 26 行的写法,对应 xlua 中的第 3 行写法


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
简单的C#字符串数组转字符串方法发布时间:2022-07-10
下一篇:
【第三篇】C#调用lua文件发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap