Unity3D打包WebGL接收URL 地址中的参数

本文介绍如何在Unity3D打包成WebGL项目后,通过JavaScript与C#的交互来获取URL中的参数,实现从网页加载时URL携带的数据到Unity3D内部的传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期遇到一个需求,在PC版实时生成二维码,并且每个二维码代表着不同的数据,然后手机扫码用浏览器打开相应的数据,(这些数据是后期实时更新的,所以网页端不能写死),这里用到url 传参。

Unity3D打包WebGL接收URL 地址中的参数,比如接收 http://1.1.1.1:1/?1024dssawwcdffds 中的 “?1024dssawwcdffds ”

参考于: https://www.cnblogs.com/daluo/articles/5815686.html

但是他只写了核心,相信很多人看了会一脸懵逼, 下边我来做一个比较详细的介绍,

1.新建一个CS脚本 名为test 内容如下

using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;

public class Test : MonoBehaviour
{
    [DllImport("__Internal")]
    private static extern string StringReturnValueFunction();

    public static string UrlMsg = string.Empty;

    public UnityEngine.UI.Text Text;
    void Start()
    {
        UrlMsg = "空";
        try
        {
            UrlMsg = StringReturnValueFunction();

        }
        catch (System.Exception e)
        {
            UrlMsg = "[catch]"+e.Message;
        }
        Text.text = UrlMsg;
    }

    
    void Update()
    {
        
    }
}

然后挂载到你喜欢的位置,并且创建一个Text 给脚本赋值, 这里比较简单。
然后创建一个.jslib文件
内容如下:

var MyPlugin = {
      
    StringReturnValueFunction: function()
    {
        var returnStr = window.location.search;
        var buffer = _malloc(lengthBytesUTF8(returnStr) + 1);
        writeStringToMemory(returnStr, buffer);
        return buffer;
    } 
};
 
mergeInto(LibraryManager.library, MyPlugin);

放到这个位置
在这里插入图片描述
其他位置本人没测试,这样放置 是因为 见过的插件或者其他工程 都是这样放置的。
然后打包就可以了。
配置好IIS后 在浏览器输入你的 url Text中就会显示出来 参数

在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值