zoukankan      html  css  js  c++  java
  • Torque2D MIT 学习笔记(11) 资源管理(3)

    资源引用

      资源系统主要处理的是那些被叫做"Declared"资源,这个术语也可以理解为资源的申报,即存在于磁盘上的资源定义文件.

      当资源系统发现了一个资源定义文件便等于发现了一个"Declared"资源.

      "Declared"资源只不过是工作的一部分,一个明显的原因就是有了资源你必须能使用它们.当你使用一个资源的时候,你将它的资源编号赋予了对象实例,这些对象又保存在了TAML文件中,比如场景或者其他的对象集合.

      不管TAML的内容是什么,总有很多的对象对保存这些资源的编号.

      一个好的资源系统,不仅能够承担起维护"Declared"资源数据库的责任,允许你通过各种方式使用它们,还要能够支持用户例如资源重命名和删除的操作.

      当你重命名一个被好几个地方引用的资源会发生什么?你如果执行了重命名操作,其他几个引用到这个资源的地方马上会因为找不到资源而操作无效.最坏的情况,就是在这些文件重新加载的时候,控制台会发出警告,提示资源找不到了.

      但幸运的是,Torque的资源系统被设计的能够在资源发生改变的时候,负责更新所有这个资源相关的引用.

      资源系统能够做到这点是因为它能够扫描TAML文件中的引用资产.当发现这些引用资产的时候,他会保存这些保存到数据库中,而这时,你如果重命名一个资源,资源系统就能自动的更新相关的引用资源.

      要想让资源系统做到这一点,你必须告诉它要扫描那些文件,逐个扫描每个文件的代价太大,所以需要一种新的策略,这个策略就是在模块定义文件中指定资源位置,用"ReferencedAsset"类型代替"DeclaredAsset".如下:  

    <ModuleDefinition
        ModuleId="TruckToy"
        VersionId="1"
        Description="A monster truck toy."
        Dependencies="ToyAssets=1"
        Type="toy"
        ToyCategoryIndex="5"
        ScriptFile="main.cs"
        CreateFunction="create"
        DestroyFunction="destroy">
            <ReferencedAssets
                Path="levels"
                Extension="level.taml"
                Recurse="true"/>		
    </ModuleDefinition>
    

      待续...

  • 相关阅读:
    字段username没有默认值查询(设计数据库一定要养成好习惯,不是主键最好设置为可以为空)
    计算机中常见的一些概念理解
    Git常用的操作
    docker里面运行jenkins详解
    什么是持续交付
    持续集成概念理解
    Jenkins pipeline概念理解
    linux无法启动httpd服务问题
    linux关闭防火墙
    模板【Binary Indexed Tree树状数组】
  • 原文地址:https://www.cnblogs.com/KevinYuen/p/2941937.html
Copyright © 2011-2022 走看看