unity发布WebGL遇到的坑(持续更新)

1、unity默认字体在网页中不会显示

解决方法:自己新导入一个字体,使用导入的字体

2、之前打过包并运行过,后面又在unity中进行了修改,重新打包,运行发现还是修改之前的效果,虽然是新包,

解决方法:这是因为网页中有缓存, 点击浏览器右边的三个点,选择设置--隐私、搜索与服务--清除浏览数据,清除后重新运行

3、如果unity 里使用了ILRintime热更新,和DoTween插件,在热更里使用了DoTween,运行WebGL时运行到Do处代码会报错。

Cannot find Type:DG.Tweening.ShortcutExtensions

at ILRuntime.Runtime.Enviorment.AppDomain.GetType (System.Object token, ILRuntime.CLR.TypeSystem.IType contextType, ILRuntime.CLR.Method.IMethod contextMethod) [0x00000] in <00000000000000000000000000000000>:0

解决方法:在unity里把Do的功能重新封装一下,然后在热更里掉用封装好的类

csharp 复制代码
using DG.Tweening;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DoTweenTool 
{
    private static DoTweenTool _instance;
    public static DoTweenTool Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new DoTweenTool();
            }
            return _instance;
        }
    }
    Dictionary<string, Tween> tweenDic = new Dictionary<string, Tween>();

    public void DoColor( Image target,Color endValue,float duration)
    {
        Tween tween= target.DOColor( endValue, duration);
        if(!tweenDic.ContainsKey(target.name))
        {
            tweenDic.TryAdd(target.name, tween);

        }
    }

    public void DOAnchorPosX(RectTransform target,float endValue,float duration)
    {
        Tween tween= target.DOAnchorPosX(endValue, duration);
        if (!tweenDic.ContainsKey(target.name))
        {
            tweenDic.TryAdd(target.name, tween);

        }
    }

    public void DOText(Text target,string content,float duration,Action action)
    {
        Tween tween=  target.DOText(content, duration).SetEase(Ease.Linear).OnUpdate(()=> { action?.Invoke(); });
        if (!tweenDic.ContainsKey(target.name))
        {
            tweenDic.TryAdd(target.name, tween);

        }
    }

    public void DOLocalMoveX(Transform target,float endValue,float duration)
    {
        Tween tween = target.DOLocalMoveX(endValue, duration);
        if (!tweenDic.ContainsKey(target.name))
        {
            tweenDic.TryAdd(target.name, tween);

        }
    }

    public void Kill(string name)
    {
        if (tweenDic.ContainsKey(name))
        {
            tweenDic.Remove(name);

        }
    }
}
相关推荐
omegayy12 小时前
Unity 2022.3.x部分Android设备播放视频黑屏问题
android·unity·视频播放·黑屏
虾球xz15 小时前
游戏引擎学习第200天
学习·游戏引擎
woshihedayu16 小时前
虚幻引擎控制角色跟随移动方向旋转的方法
游戏引擎·虚幻
虾球xz16 小时前
游戏引擎学习第199天
学习·游戏引擎
与火星的孩子对话18 小时前
Unity3D开发AI桌面精灵/宠物系列 【三】 语音识别 ASR 技术、语音转文本多平台 - 支持科大讯飞、百度等 C# 开发
人工智能·unity·c#·游戏引擎·语音识别·宠物
向宇it18 小时前
【零基础入门unity游戏开发——2D篇】2D 游戏场景地形编辑器——TileMap的使用介绍
开发语言·游戏·unity·c#·编辑器·游戏引擎
牙膏上的小苏打23331 天前
Unity Surround开关后导致获取主显示器分辨率错误
unity·主屏幕
Unity大海2 天前
诠视科技Unity SDK开发环境配置、项目设置、apk打包。
科技·unity·游戏引擎
大松鼠君2 天前
轿车3D展示
前端·webgl·three.js
浅陌sss2 天前
Unity中 粒子系统使用整理(一)
unity·游戏引擎