(client) feat:支持定义实体的碰撞体大小和偏移;建筑支持定义实体建筑和瓦片建筑,建筑支持指定按钮回调;添加存档管理器;Dev支持设置是否暂停;实体允许定义事件组;添加基地界面 (#57)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/57
This commit is contained in:
2025-09-28 15:02:57 +08:00
parent 87a8abe86c
commit aff747be17
232 changed files with 39203 additions and 4161 deletions

View File

@@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using Data;
using Prefab;
using UnityEngine;
@@ -9,31 +8,43 @@ namespace Utils
{
public class GameObjectCreate:Singleton<GameObjectCreate>
{
private SpriteAnimator _animatorPrefab;
public SpriteAnimator AnimatorPrefab
private static SpriteAnimator _animatorPrefab;
public static SpriteAnimator AnimatorPrefab
{
get
{
if (_animatorPrefab == null)
if (!_animatorPrefab)
{
_animatorPrefab=Resources.Load<SpriteAnimator>("Prefab/Animation");
_animatorPrefab=Resources.Load<SpriteAnimator>("Prefab/ControlUI/Animation");
}
return _animatorPrefab;
}
}
private ImagePrefab _imagePrefab;
public ImagePrefab ImagePrefab
private static ImagePrefab _imagePrefab;
public static ImagePrefab ImagePrefab
{
get
{
if (_imagePrefab == null)
if (!_imagePrefab)
{
_imagePrefab=Resources.Load<ImagePrefab>("Prefab/Image");
_imagePrefab=Resources.Load<ImagePrefab>("Prefab/ControlUI/Image");
}
return _imagePrefab;
}
}
private static ProgressBarPrefab _progressBarPrefab;
public static ProgressBarPrefab ProgressBarPrefab
{
get
{
if (!_progressBarPrefab)
{
_progressBarPrefab=Resources.Load<ProgressBarPrefab>("Prefab/ControlUI/ProgressBar");
}
return _progressBarPrefab;
}
}
/// <summary>
@@ -70,7 +81,7 @@ namespace Utils
break;
case 1:
// 单纹理节点
if (!Instance.ImagePrefab)
if (!ImagePrefab)
{
Debug.LogError($"InitBodyPart: imagePrefab未设置 (节点名: {drawNode.nodeName})");
return null;
@@ -85,7 +96,7 @@ namespace Utils
$"InitBodyPart: 无法获取纹理 (节点名: {drawNode.nodeName}, 纹理ID: {drawNode.textures[0]})");
}
var imagePrefabCom = Object.Instantiate(Instance.ImagePrefab, parent.transform);
var imagePrefabCom = Object.Instantiate(ImagePrefab, parent.transform);
if (imagePrefabCom)
{
imagePrefabCom.SetSprite(texture);
@@ -100,13 +111,13 @@ namespace Utils
break;
default:
// 多纹理动画节点
if (!Instance.AnimatorPrefab)
if (!AnimatorPrefab)
{
Debug.LogError($"InitBodyPart: animatorPrefab未设置 (节点名: {drawNode.nodeName})");
return null;
}
var animator = Object.Instantiate(Instance.AnimatorPrefab, parent.transform);
var animator = Object.Instantiate(AnimatorPrefab, parent.transform);
if (!animator)
{
Debug.LogWarning($"InitBodyPart: 无法获取SpriteAnimator组件 (节点名: {drawNode.nodeName})");
@@ -162,7 +173,7 @@ namespace Utils
public static SpriteAnimator SpriteAnimator(Sprite[] sprites,Transform parent)
{
var spriteAnimator = Object.Instantiate(Instance.AnimatorPrefab,parent);
var spriteAnimator = Object.Instantiate(AnimatorPrefab,parent);
spriteAnimator.SetSprites(sprites);
spriteAnimator.transform.localPosition=Vector3.zero;
return spriteAnimator;
@@ -175,7 +186,7 @@ namespace Utils
public static ImagePrefab SpriteImage(Sprite sprite, Transform parent)
{
var spriteImage = Object.Instantiate(Instance.ImagePrefab,parent);
var spriteImage = Object.Instantiate(ImagePrefab,parent);
spriteImage.SetSprite(sprite);
spriteImage.transform.localPosition=Vector3.zero;
return spriteImage;