XNA Load Shader不使用ContentManager

时间:2014-01-25 02:13:12

标签: wpf xna

我有一个WPF项目,我已经开始添加XNA了。主要原因是我们已经拥有一个可以运行迷你游戏的WPF应用程序。我试图找出是否有一种方法来编译着色器然后在不使用ContentManager的情况下将其加载到XNA效果中,或者是否有办法在运行时添加ContentManager对象并向其添加内容然后加载吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

我能够弄清楚如何做到这一点。我必须实现一个自定义内容构建器来将原始资产编译为xna格式并将它们存储到相应的项目中,然后使用内容管理器来加载/卸载资产。我使用这些网站作为参考,以及从WinForm XNA示例中获取一些代码

  1. 由Valentin Billotte进入WPF的XNA(www.codeproject.com/Articles/38301/XNA-integration-inside-WPF)
  2. 主持XNA的WinForm示例(xbox.create.msdn.com/en-US/education/catalog/sample/winforms_series_1)
  3. 此博客附带创建自定义内容构建器的链接(xboxforums.create.msdn.com/forums/p/102128/606419.aspx)
  4. 我必须做的唯一改变是将以下几行添加到GraphicDeviceControl.cs中:

        /// <summary>
        /// Gets an IServiceProvider containing our IGraphicsDeviceService.
        /// This can be used with components such as the ContentManager,
        /// which use this service to look up the GraphicsDevice.
        /// </summary>
        public ServiceContainer Services
        {
            get { return services; }
        }
    
        ServiceContainer services = new ServiceContainer();
    

    由于XNA需要托管XNA游戏/应用程序的服务容器