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服务器后,如何创建自己的账号

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月12日
    浏览(50)
  • 网络安全笔记-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日
    浏览(59)
  • Unity中使用HttpListener创建本地Http web服务器教程与完整代码

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

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

    一、在 Debian 中添加 sudo 用户 1.创建新用户 首先,要创建用户,当前用户必须是 root 用户或者 sudo 用户。 使用下面adduser 命令创建一个用户名为test的sudo用户,按照提示输入密码,使用 adduser 命令,还会创建用户的主目录。 sudo adduser test 2.将用户成为 sudo 用户 创建test用户后,

    2024年02月05日
    浏览(63)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包