mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 新增 Godot 场景行为基类和具体实现(Node2D、Node3D、Control、通用场景行为) - 添加场景行为工厂类,支持根据节点类型自动创建合适的行为实例 - 实现 Godot 场景工厂类,用于创建场景实例并集成场景注册表 - 添加 Godot 路径扩展方法,支持判断用户数据路径和资源路径 - 优化数据仓库和设置事件类的初始化方法,添加 XML 文档注释 - 修改场景切换管道中的日志记录逻辑,避免空引用异常 - 更新 Godot 日志记录器和日志工厂的文档注释 - 为设置相关类添加数据对象和类型属性的文档说明 - 移除加载进度处理器类,精简场景切换流程
43 lines
1.6 KiB
C#
43 lines
1.6 KiB
C#
// Copyright (c) 2026 GeWuYou
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
using GFramework.Game.Abstractions.scene;
|
|
using Godot;
|
|
|
|
namespace GFramework.Godot.scene;
|
|
|
|
/// <summary>
|
|
/// 场景行为工厂类,根据节点类型自动创建合适的场景行为实例。
|
|
/// 使用模式匹配选择最适合的行为类型。
|
|
/// </summary>
|
|
public static class SceneBehaviorFactory
|
|
{
|
|
/// <summary>
|
|
/// 根据节点类型创建对应的场景行为实例。
|
|
/// </summary>
|
|
/// <typeparam name="T">节点类型,必须继承自 Node。</typeparam>
|
|
/// <param name="owner">场景节点的所有者实例。</param>
|
|
/// <param name="key">场景的唯一标识键。</param>
|
|
/// <returns>创建的场景行为实例。</returns>
|
|
public static ISceneBehavior Create<T>(T owner, string key)
|
|
where T : Node
|
|
{
|
|
return owner switch
|
|
{
|
|
Node2D node2D => new Node2DSceneBehavior(node2D, key),
|
|
Node3D node3D => new Node3DSceneBehavior(node3D, key),
|
|
Control control => new ControlSceneBehavior(control, key),
|
|
_ => new GenericSceneBehavior(owner, key)
|
|
};
|
|
}
|
|
} |