Unity WebGL发布H5接入360渠道网页SDK

涉及到的知识点包含:

1、Lua -> C# -> JavaScript 通讯链 jslib实现

2、JavaScript -> C# -> Lua 通讯链 unityInstance.SendMessage();实现

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChannelMessage : MonoBehaviour
{
    public delegate void LuaDelegate(string msg);
    // 添加一个字典来存储多个回调
    private static Dictionary<string, LuaDelegate> luaCallbacks = new Dictionary<string, LuaDelegate>();
    
    // 注册回调方法
    public static void RegisterCallback(string eventName, LuaDelegate callback)
    {
        luaCallbacks[eventName] = callback;
    }
    
    // 触发回调
    private void TriggerCallback(string eventName, string message)
    {
        if (luaCallbacks.ContainsKey(eventName) && luaCallbacks[eventName] != null)
        {
            luaCallbacks[eventName](message);
        }
    }
    // Start is called before the first frame update
    void Start()
    {
        Object.DontDestroyOnLoad(gameObject);
    }
    // js回调登录结果
    public void OnLogin(string iaaq)
    {
        Debugger.Log("OnLogin iaaq " + iaaq);
        Constant.IAAQ = iaaq;
    }
    // 
    /// <summary>
    /// js回调支付结果
    /// </summary>
    /// <param name="result">success支付成功,其余失败</param>
    public void OnPaySuccess(string result)
    {
        Debugger.Log("OnPaySuccess " + result);
        TriggerCallback("pay", result);  // 触发支付回调
    }
    // js回调支付结果
    public void OnPayFail(string result)
    {
        Debugger.Log("OnPayFail " + result );
        TriggerCallback("pay", result);  // 触发支付回调
    }
    /// <summary>
    /// js回调广告播放结果
    /// </summary>
    /// <param name="result">inited:初始化完成 success:播完广告成功,其余失败</param>
    public void OnAdPlay(string result)
    {
        Debugger.Log("OnAdPlay " + result);
        TriggerCallback("ad", result);   // 触发广告回调
    }
}
Lua 复制代码
-- 在Lua中注册回调
function OnPayCallback(msg)
    framework.Logger.log("支付回调: " .. msg)
    -- 处理支付结果
end

function OnAdCallback(msg)
    framework.Logger.log("广告回调: " .. msg)
    -- 处理广告结果
   
end
CS.ChannelMessage.RegisterCallback("pay", OnPayCallback)
CS.ChannelMessage.RegisterCallback("ad", OnAdCallback)
相关推荐
zyh______2 小时前
unity值属性修改步骤
unity·游戏引擎
小贺儿开发4 小时前
Unity3D 四星探秘:手势互动演示
科技·unity·人机交互·科普·硬件·leap motion·互动
风酥糖4 小时前
Godot游戏练习01-第11节-显示优化,游戏背景,Shader
游戏·游戏引擎·godot
码界奇点7 小时前
基于模块化架构的Unity游戏开发框架设计与实现
java·c++·unity·架构·毕业设计·源代码管理
风酥糖8 小时前
Godot游戏练习01-第13节-粒子系统,武器攻击特效
游戏·游戏引擎·godot
张老师带你学11 小时前
unity船资源,快艇,帆船,游轮
科技·游戏·unity·游戏引擎·模型
C蔡博士12 小时前
Unity游戏物体渲染顺序
unity·游戏引擎·游戏开发
瑞瑞小安14 小时前
Unity功能篇:PCVR开发(设备:HTC Vive Pro)更新中。。。
unity·游戏引擎
花姐夫Jun1 天前
WebGL学习-夹角的归一化
学习·webgl
风酥糖1 天前
Godot游戏练习01-第10节-组件化,玩家受伤,YSort,和一点思考
游戏·游戏引擎·godot