GameFramework 中 图片 加载

2023-10-11 01:40
文章标签 加载 图片 gameframework

本文主要是介绍GameFramework 中 图片 加载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码来自烟雨迷离半世殇Unity作品展示:坦克大战(基于GameFramework)_设计师养成记-CSDN博客游戏名称:Battle City游戏素材:SIKI学院,爱给网开发平台:Unity 2018.3.1f1游戏平台:WinX游戏版本:1.0游戏用途:仅供学习交流使用,若用作商业,后果自负。游戏类型:经典坦克大战,微创新游戏介绍:加入商城模块,任务模块,存读档功能,技能背包系统,Buff系统源码下载:https://blog.csdn.net/qq_1502054...https://blog.csdn.net/qq_15020543/article/details/86760793

非常棒!推荐大家去看

游戏过程中需要加载的图片全部为SpritesAsset继承ScriptableObject。

namespace GameMain.Scripts.CostumAssets
{[Serializable]public class SpriteItem{/// <summary>/// 精灵名称/// </summary>public string m_SpriteName;/// <summary>/// 精灵/// </summary>public Sprite Sprite;}
}
namespace GameMain.Scripts.CostumAssets
{public class SpritesAsset : ScriptableObject{/// <summary>/// 精灵数组/// </summary>[SerializeField] public List<SpriteItem> m_SpritesAssets = new List<SpriteItem>();}
}

游戏开始后如何加载资源?

GameEntry.Resource.LoadAsset(AssetUtility.GetSpriteAsset(), OnLoadSpriteAssetSuccess);

其中,AssetUtility.GetSpriteAsset()位于工具类中,获得asset

建立工具类,方便资源的加载

namespace GameMain.Scripts.Utility
{public static class AssetUtility{public static string GetDataTableAsset(string assetName, LoadType loadType){return GameFramework.Utility.Text.Format("Assets/GameMain/DataTables/{0}.{1}", assetName,loadType == LoadType.Text ? "txt" : "bytes");}public static string GetSceneAsset(string assetName){return GameFramework.Utility.Text.Format("Assets/GameMain/Scenes/{0}.unity", assetName);}public static string GetSoundAsset(string assetName){return GameFramework.Utility.Text.Format("Assets/GameMain/Sounds/{0}.wav", assetName);}public static string GetEntityAsset(string assetName){return GameFramework.Utility.Text.Format("Assets/GameMain/Entities/{0}.prefab", assetName);}public static string GetUIFormAsset(string assetName){return GameFramework.Utility.Text.Format("Assets/GameMain/UI/UIForms/{0}.prefab", assetName);}public static string GetSpriteAsset(){return "Assets/GameMain/CostumAssets/SpritesAsset.asset";}}
}
        public LoadAssetCallbacksOnLoadSpriteAssetSuccess = new LoadAssetCallbacks(loadSpritsAssetCallback);

OnLoadSpriteAssetSuccess则是一个回调,在加载成功后回调,回调内容为:

        private static void loadSpritsAssetCallback(string assetname, object asset, float duration, object userdata){m_SpritesAsset = asset as SpritesAsset;}

SpritesAsset 类型的参数记录了这个回调返回的结果

 public static SpritesAsset m_SpritesAsset { get; set; }

最后是资源在游戏中的使用:

transform.GetComponent<SpriteRenderer>().sprite = GameManager.m_SpritesAsset.m_SpritesAssets[6].Sprite;

根据之前定义的结构进行读取即可!非常方便

    public class SpriteItem{/// <summary>/// 精灵名称/// </summary>public string m_SpriteName;/// <summary>/// 精灵/// </summary>public Sprite Sprite;}

这篇关于GameFramework 中 图片 加载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184603

相关文章

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

使用Python将长图片分割为若干张小图片

《使用Python将长图片分割为若干张小图片》这篇文章主要为大家详细介绍了如何使用Python将长图片分割为若干张小图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果1. Python需求

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

springboot 加载本地jar到maven的实现方法

《springboot加载本地jar到maven的实现方法》如何在SpringBoot项目中加载本地jar到Maven本地仓库,使用Maven的install-file目标来实现,本文结合实例代码给... 在Spring Boothttp://www.chinasem.cn项目中,如果你想要加载一个本地的ja

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用