0

0

C# Stride游戏引擎入门方法 C#如何使用Stride 3D引擎

星降

星降

发布时间:2026-02-16 05:29:14

|

708人浏览过

|

来源于php中文网

原创

不建议新手从 stride 入门现代3d开发,因其已于2023年归档、停止维护,依赖过时技术栈;若仅用于维护旧项目或教学演示,需严格匹配vs 2022、.net framework 4.8及stride 4.2.0安装器,并遵循其特殊构建流程与组件系统规范。

c# stride游戏引擎入门方法 c#如何使用stride 3d引擎

Stride 3D引擎现在还值得入门吗

不建议新手从 Stride 入门现代 3D 游戏开发。它已停止官方维护(2023 年正式归档),GitHub 仓库标记为 archived,NuGet 包不再更新,Stride.Core 等关键包最后版本停留在 4.2.0。Unity 和 Godot 的 C# 支持更成熟,.NET 6+ 生态也已全面转向 Microsoft.Extensions.*System.Numerics,而 Stride 仍依赖大量自研数学库(如 Stride.Mathematics)和过时的构建流程。

如果必须用 Stride,怎么跑起第一个 Hello World 场景

仅限已有项目维护或教学演示场景。需严格匹配环境:

  • Visual Studio 2022(必须安装 .NET Framework 4.8 多目标支持)
  • 下载 Stride 4.2.0 安装器(非 GitHub 源码),运行后会注册 stride CLI 命令
  • 新建项目命令:stride new MyGame --template=3d,而非用 VS 模板(模板已失效)
  • MyGame.Game.cs 中的 Initialize() 是入口,不是 Main();所有实体需通过 EntitySystem.CreateEntity() 构建,不能直接 new
  • 默认渲染器是 ForwardRenderer,若手动替换为 DeferredRenderer,需确保材质启用了 IsOpaque = false,否则模型全黑

常见编译失败:找不到 Stride.CoreStride.Graphics

这是 Stride 最典型的引用断裂问题,根源在于它不走标准 NuGet 包还原路径:

办公人导航
办公人导航

办公人导航是一个实用的办公生活导航网站

下载
  • 不要手动添加 NuGet 引用 —— Stride 项目依赖 Stride.Sdk MSBuild SDK,它会在构建时动态注入程序集引用
  • 检查项目文件是否含 Sdk="Stride.Sdk",例如:<project sdk="Stride.Sdk"></project>
  • 若用 Rider 或 VS Code,需启用 MSBuild Structured Log 查看实际解析路径;常见错误是误删了 Stride.targets 导入语句
  • 遇到 CS0234: The type or namespace name 'Graphics' does not exist,先执行 stride build 再打开 IDE,避免 IDE 缓存干扰

C# 脚本里访问 Transform 和 Mesh 的正确方式

Stride 不提供 Unity 风格的 transform.position 简写,所有操作都基于组件系统和显式数据流:

  • 获取位置必须组合两个组件:var transform = entity.Get<transformcomponent>()</transformcomponent>,再读 transform.WorldMatrix.TranslationVector
  • 修改位置不能直接赋值,要用 transform.WorldMatrix = Matrix.CreateTranslation(x, y, z) 后调用 transform.MarkAsChanged()
  • Mesh 数据在 ModelComponent 中,但实际顶点缓冲区不可直接读取;如需 CPU 端处理,得用 ModelContent.Load() 加载原始 .fbx,再解析 MeshContent.Vertices
  • 注意线程安全:Update() 在主线程,但 Render() 可能在异步渲染线程,禁止在 Render() 中修改 TransformComponent

Stride 的底层抽象粒度比预期高,很多“理所当然”的操作都要查源码确认实现路径。真正卡住的地方往往不是语法,而是它的数据所有权模型 —— 比如 Entity 生命周期由 EntitySystem 管理,手动 new Entity() 不会自动注册到场景中。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

417

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

588

2023.08.10

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

674

2023.08.10

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

674

2023.08.10

CSS position定位有几种方式
CSS position定位有几种方式

有4种,分别是静态定位、相对定位、绝对定位和固定定位。更多关于CSS position定位有几种方式的内容,可以访问下面的文章。

83

2023.11.23

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2346

2026.01.21

vsd文件打开方法
vsd文件打开方法

vsd文件打开方法有使用Microsoft Visio软件、使用Microsoft Visio查看器、转换为其他格式等。想了解更多vsd文件相关内容,可以阅读本专题下面的文章。

500

2023.10.30

unity是什么软件
unity是什么软件

Unity是一款强大而易于使用的游戏开发引擎,它为开发者提供了一套完整的工具和技术,使他们能够创建各种类型的游戏和交互式内容。本专题为大家提供unity相关的各种文章、以及下载和课程。

235

2023.08.09

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

145

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 9.5万人学习

C 教程
C 教程

共75课时 | 4.7万人学习

C++教程
C++教程

共115课时 | 17.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号