Unity Addressables学习笔记(1)---创建远程服务器加载资源

这篇具有很好参考价值的文章主要介绍了Unity Addressables学习笔记(1)---创建远程服务器加载资源。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Unity Addressables学习笔记—汇总

例子1:加载一个图片

1.首先创建一个UI Image,空白图片,资源打包方式选择真是部署的

unity 加载远程图片,Unity,unity,学习,笔记
unity 加载远程图片,Unity,unity,学习,笔记

2.修改远程发布和加载配置

Bulid Path选择RemoteBuildPath

Load Path我选择了custom,地址是http://localhost:8080/WebGL/

unity 加载远程图片,Unity,unity,学习,笔记

遇坑1 :最开始我选择的Build Path 是 LocalBuildPath,Load Path是custom的时候报错如下:

BuildPath for group '***' is set to the dynamic-lookup version of StreamingAssets, but LoadPath is not. 

解决办法:把Build Path 改为RemoteBuildPath后才好,我也不知道为什么不能把本地的资源放到远程资源上,可能是有区别吧,必须把远程资源打包到远程服务器上也能好理解。

3.打包放服务器里

Bulid Path选择RemoteBuildPath,打包的文件会出现在ServerData文件夹里,这个文件夹在Unity里是加载不出来的,里边是对应的是你要打包的程序类型,我的是网页所以是WebGL.我的打包文件名是:remote_assets_all_9cd0b0249adf18fa843683539bbac8b9.bundle
之后我拷贝到了一个本地的服务器上,我用的Spring Boot,因为我本身是搞Java的
pom.xml依赖就一个

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.3.12.RELEASE</version>
        </dependency>
    </dependencies>

启动函数

@SpringBootApplication
public class CDNBackend {
    private static ApplicationContext context;

    public static void main(String[] args) {
        context = SpringApplication.run(CDNBackend.class, args);
    }

    public static ApplicationContext getApplicationContext() {
        return context;
   

遇坑1.放到服务器上的spring boot静态资源不能访问。

unity 加载远程图片,Unity,unity,学习,笔记

我在static下边创建了一个WebGL目录当然没有也行,这个路径要跟上边的Load Path 对应,主要是.bundle这个文件下载不了,所以添加了一个配置类,解决不能访问的问题

@Configuration
public class ShowImage extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //注:addResourceHandler("/WebGL/**")这个是配置你的URL
        //addResourceLocations("classpath:/static/WebGL/")这个是你的文件目录
        registry.addResourceHandler("/WebGL/**").addResourceLocations("classpath:/static/WebGL/");
        super.addResourceHandlers(registry);
    }
}

4. Unity C#加载远程图片

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.UI;

public class GameController : MonoBehaviour
{
    private Sprite sprite;
    public Image img;
    void Start()
    {
        //Addressables.InstantiateAsync("Play Button");
        PlayerPrefs.DeleteKey(Addressables.kAddressablesRuntimeDataPath);
        Addressables.LoadAssetAsync<Sprite>("Play Button Img").Completed += SpriteLoaded;
    }

    private void SpriteLoaded(AsyncOperationHandle<Sprite> obj)
    {
        switch (obj.Status)
        {
            case AsyncOperationStatus.Succeeded:
                sprite = obj.Result;
                #加载完成的时候给img设置sprite
                img.sprite = sprite;
                break;
            case AsyncOperationStatus.Failed:
                Debug.LogError("Sprite load failed.");
                break;
            default:
                //case AsyncOperationStatus.None:
                break;
        }
    }
}

遇坑1.因为是WebGL游戏,所以是WEB访问WEB,存在一个跨域问题。WebGL游戏报错:

from origin ‘http://localhost:57545’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

p://localhost:8080/WebGL/remote_assets_all_9cd0b0249adf18fa843683539bbac8b9.bundle' from origin 'http://localhost:57545' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

解决方式:

在Spring Boot的服务器端添加跨域白名单类

@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    public void addCorsMappings(CorsRegistry registry) {
        //CorsRegistration addMapping(String pathPattern): 添加路径映射,如 /admin/info,或者 /admin/**
        registry.addMapping("/**")
                //是否发送Cookie
                .allowCredentials(true)
                //放行哪些原始域, * 表示所有
                .allowedOrigins(new String[]{"http://127.0.0.1:57545", "http://localhost:57545"})
                //放行哪些请求方式
                .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"})
                //放行哪些原始请求头部信息
                .allowedHeaders("*");
        //暴露哪些头部信息,不能设置为 * : .exposedHeaders();
    }
}

最终效果 加载图片成功

unity 加载远程图片,Unity,unity,学习,笔记文章来源地址https://www.toymoban.com/news/detail-634904.html

到了这里,关于Unity Addressables学习笔记(1)---创建远程服务器加载资源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 用vscode远程连接Linux服务器后,如何创建自己的账号

    用vscode远程连接Linux服务器后,如何创建自己的账号

    (假设您要创建的用户名为 “newuser”),在命令执行期间,需要提供新用户的密码。按照提示进行操作。 先输入登录的管理员账号密码。 再输入创建的用户的密码,并重复密码。 在连接到 Linux 服务器的终端中,以管理员权限使用以下命令将新用户添加到 sudo 组中(将 ne

    2024年02月16日
    浏览(28)
  • 基于远程服务器安装配置Anaconda环境及创建python虚拟环境详细方案

    基于远程服务器安装配置Anaconda环境及创建python虚拟环境详细方案

    清华大学开源软件镜像站:点击打开链接 参考文章:点击打开《基于Windows下Anaconda创建python虚拟环境教程》文章 Pytorch各版本下载网页:点击打开链接 pytorch-geometric各版本下载网页:点击打开链接

    2023年04月09日
    浏览(42)
  • 【Oracle Database】如何远程连接服务器、创建用户、从本地dmp导入表

    【Oracle Database】如何远程连接服务器、创建用户、从本地dmp导入表

    连接服务器的操作自己通过sql developer连接 删除用户 检查test用户的权限

    2024年03月08日
    浏览(13)
  • 如何使用Node.js快速创建本地HTTP服务器并实现异地远程访问

    如何使用Node.js快速创建本地HTTP服务器并实现异地远程访问

    Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation(原为 Node.js Foundation,已与 JS Foundation 合并)持有和维护,亦为 Linux 基金会的项目。Node.js 采用 Google 开发的 V8 运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高

    2024年02月05日
    浏览(47)
  • 桌面版vscode用免费的微软4核8G服务器做远程开发(编译运行都在云上,还能自由创建docker服务)

    桌面版vscode用免费的微软4核8G服务器做远程开发(编译运行都在云上,还能自由创建docker服务)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 在前文《浏览器上写代码,4核8G微软服务器免费用,Codespaces真香》中,咱们以一个Java程序员视角体验了GitHub的Codespaces产品的beta版,简单来说有以下两大收获: 网页版

    2024年02月05日
    浏览(11)
  • 服务器win10多用户远程登陆方案(个人笔记)

    服务器win10多用户远程登陆方案(个人笔记)

    win10 左下角搜索栏中 输入 gpedit打开本地组策略编辑器 选择【管理模板】-【Windows组件】-【远程桌面服务】-【远程桌面会话主机】-【连接】 配置 【限制连接的数量】,允许的RD最大连接数 即为最大的连接数量 配置【将远程桌面服务用户限制到单独的远程桌面服务会话】,

    2024年02月15日
    浏览(9)
  • 网络安全笔记-day5,服务器远程管理

    网络安全笔记-day5,服务器远程管理

    windows远程有两种类型: 1.远程桌面(图形化) 2.telnet(命令行) 准备两台虚拟机,我用的是winsowsXP和windowsServer2003 1.将两台设备连接到一个交换机下 2.配置IP地址 windowsXP ip:192.168.1.2 子网掩码:255.255.255.0 windowsServer2003 ip:192.168.1.3 子网掩码:255.255.255.0 测试是否能通信 打开winsow

    2024年04月16日
    浏览(11)
  • Mac下VSCode笔记--远程连接服务器(替代MobaXterm)

    Mac下VSCode笔记--远程连接服务器(替代MobaXterm)

             之前习惯了在Windows系统下使用MobaXterm软件连接服务器,并修改其中的文件内容。但很遗憾MobaXterm目前不支持在Mac系统下使用,同时Tabby等Mac远程终端软件并不能方便地修改服务器的文件(借助Vim太麻烦!)。本文旨在总结在Mac下使用VSCode远程连接服务器的笔记,

    2024年02月12日
    浏览(8)
  • Unity中使用HttpListener创建本地Http web服务器教程与完整代码

    下方有完整代码和使用方法,急用的请直接拉到最下方 本文可以实现不开新进程在Unity中创建http服务器。 监听自定义ip获取指定目录下的网页或其他资源。如果网页内有其他资源链接也可以正常访问。 可以配合Unity网页浏览器组件使用解决资源打包问题 在Unity中搭建简易ht

    2024年02月02日
    浏览(59)
  • Linux Debian11服务器安装SSH,创建新用户并允许SSH远程登录,及SSH安全登录配置!

    在Debian 11服务器上安装SSH并创建新用户允许SSH远程登录的步骤如下: 步骤1:安装SSH 为了安装SSH服务器,您需要以root用户或具有sudo特权的用户身份登录到您的Debian 11服务器。 在终端中执行以下命令来安装SSH服务器: 步骤2:创建新用户 要创建一个新用户,您可以使用  add

    2024年02月12日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包