zoukankan      html  css  js  c++  java
  • 素材只能放在Content文件夹里吗?素材随意放全攻略。

    首先,如何改变文件夹名字呢?不想再叫Content了。

    其实很简单,在 解决方案资源管理器 中点击*Content(Content),

    然后再修改 属性 窗口中修改 内容根目录 的值。这样文件夹的名字就改掉了。

    最后,别忘了这句话 Content.RootDirectory = "Content"; 改掉它的值就成功了。

    那么RootDirectory是什么意思呢?

    查看ContentManager的从元数据可以得到注释,意思是用于搜索内容的根目录。

    也就是说

    Content.Load<T>("Image/pic");

     与

    Content.RootDirectory = "Image";
    Content.Load<T>("pic");

    是等价的。

    等等,这就是说我们可以创建多个文件夹,然后通过Content.RootDirectory在不同文件夹内切换。

    没错,是这样的。

    不过通常情况下我们是将素材放在同一个文件夹内的,如果你真的要用到多个文件夹那就要通过这个方法来切换了。

    如何创建多个素材文件夹呢?

    1. 右键 解决方案'*'(n个项目)
    2. 添加空的内容项目
    3. 右键内容引用
    4. 添加内容引用
    5. 选择目标内容引用再点确定

    可是这种方法切换文件夹还要设置Content.RootDirectory,可真的没有“Content2/*.*”这样方便啊……

    那么,既然可以换文件夹,那么可不可以将素材放在游戏根目录下呢?

    按照正常的思路,读取根目录的文件有这么几种写法:"*.*" "/*.*" "./*.*" "../*.*"。

    我们一个一个来试试,首先我们把 内容根目录 的值清空,这时候VS将这个值改成".",编译下试试,结果xnb出现在根目录了!

    实验证明素材是可以放在游戏根目录下。

    这样我们还解决了多个文件夹切换麻烦的问题。

    最后总结下,就像上面说的改文件夹名字那样:

    在 解决方案资源管理器 中点击*Content(Content),然后将 属性 窗口中修改 内容根目录 的值修改为"."。

    微软为什么要这么做?

    由于素材放在一起是一个好习惯,估计因为这点微软就提前帮我们把这些事做好了。

    不过微软没有想到一点,我们喜欢自由。即使我们会这么做,但是你强制我们这么做就感到浑身不舒服了。

    其实微软也没强制,只是给了个默认值而已,不过Content.RootDirectory的确很废。

  • 相关阅读:
    Base64编码原理分析
    对 js 高程 Preflighted Reqeusts 的理解
    js 跨域 之 修改服务器配置-XAMPP-Apache (nginx 拉到最后!)
    js 模拟 select 的 click 事件
    串讲-解释篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包
    js 匿名函数-立即调用的函数表达式
    Java I/O流输入输出,序列化,NIO,NIO.2
    Java8Lambda表达式
    设计模式之适配器模式
    设计模式之装饰器设计模式
  • 原文地址:https://www.cnblogs.com/rainstorm/p/2909817.html
Copyright © 2011-2022 走看看