feat(gameplay): 更新核心场景中的卡牌和能量豆配置

- 将能量豆5重命名为能量豆6,能量豆4重命名为能量豆7等,调整了所有
  能量豆的命名顺序
- 将卡牌5重命名为卡牌1,并添加了新的组件包括召唤槽脚本和按钮交互
  组件
- 为卡牌添加子对象Image用于显示卡牌内容
- 调整了卡牌和能量豆的层级结构和父子关系
- 实现了通过数字键1和2进行召唤的功能,支持指定召唤槽位
- 添加了UI元素的射线检测控制,部分元素设置为不响应射线点击

fix(input): 防止在UI元素上移动角色

- 在移动输入检查中增加了对EventSystem的判断,当鼠标指针位于
  UI元素上方时禁止角色移动
- 避免了玩家在操作UI时意外移动角色的问题
```
This commit is contained in:
huadexuan committed 2026-09-08 23:53:24 +08:00
1 parent d4e8da8ab3
commit 2dfffd57fe
5 files changed
+266 -56

No files matched your search

+176 -40
View File
@@ -315,7 +315,7 @@ GameObject:
- component: {fileID: 100839533}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C465"
m_Name: "\u80FD\u91CF\u8C466"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -354,7 +354,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -834,9 +834,11 @@ GameObject:
- component: {fileID: 366632241}
- component: {fileID: 366632243}
- component: {fileID: 366632242}
- component: {fileID: 366632245}
- component: {fileID: 366632244}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u5361\u72475"
m_Name: "\u5361\u72471"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -853,7 +855,8 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: -21}
m_LocalScale: {x: 2.35, y: 2.35, z: 2.35}
m_ConstrainProportionsScale: 1
m_Children: []
m_Children:
- {fileID: 1936296690}
m_Father: {fileID: 2057800508}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@@ -899,6 +902,63 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 366632240}
m_CullTransparentMesh: 1
--- !u!114 &366632244
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 366632240}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4ce4f9fc25a374346853b4acab3f2484, type: 3}
m_Name:
m_EditorClassIdentifier:
summonSlot: 1
--- !u!114 &366632245
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 366632240}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 0
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 366632242}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &400225621
GameObject:
m_ObjectHideFlags: 0
@@ -1814,7 +1874,7 @@ GameObject:
- component: {fileID: 722552588}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u5361\u72471"
m_Name: "\u5361\u72475"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -2056,7 +2116,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -2167,7 +2227,7 @@ GameObject:
- component: {fileID: 833940069}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C464"
m_Name: "\u80FD\u91CF\u8C467"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -2206,7 +2266,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -3321,7 +3381,7 @@ GameObject:
- component: {fileID: 1354528298}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C4610"
m_Name: "\u80FD\u91CF\u8C461"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3360,7 +3420,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -3436,7 +3496,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -3473,7 +3533,7 @@ GameObject:
- component: {fileID: 1495122837}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C468"
m_Name: "\u80FD\u91CF\u8C463"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3512,7 +3572,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -3581,7 +3641,7 @@ GameObject:
- component: {fileID: 1580760511}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C466"
m_Name: "\u80FD\u91CF\u8C465"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3620,7 +3680,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -3746,7 +3806,7 @@ GameObject:
- component: {fileID: 1611074743}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C469"
m_Name: "\u80FD\u91CF\u8C462"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3785,7 +3845,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -3822,7 +3882,7 @@ GameObject:
- component: {fileID: 1617939209}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C461"
m_Name: "\u80FD\u91CF\u8C4610"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -3861,7 +3921,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -4073,7 +4133,7 @@ GameObject:
- component: {fileID: 1818604653}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u5361\u72472"
m_Name: "\u5361\u72474"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4223,7 +4283,7 @@ GameObject:
- component: {fileID: 1829128965}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C467"
m_Name: "\u80FD\u91CF\u8C464"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4262,7 +4322,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -4468,7 +4528,7 @@ GameObject:
- component: {fileID: 1857417479}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C463"
m_Name: "\u80FD\u91CF\u8C468"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4507,7 +4567,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -4544,7 +4604,7 @@ GameObject:
- component: {fileID: 1911104686}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u5361\u72474"
m_Name: "\u5361\u72472"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4607,6 +4667,82 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1911104684}
m_CullTransparentMesh: 1
--- !u!1 &1936296689
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 7
m_Component:
- component: {fileID: 1936296690}
- component: {fileID: 1936296692}
- component: {fileID: 1936296691}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1936296690
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1936296689}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 366632241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -1}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1936296691
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1936296689}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: ac0c2d42f9a144e5b9e9b0d16590d58b, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1936296692
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1936296689}
m_CullTransparentMesh: 1
--- !u!1 &1946004731
GameObject:
m_ObjectHideFlags: 0
@@ -4620,7 +4756,7 @@ GameObject:
- component: {fileID: 1946004733}
m_Layer: 5
m_HasEditorInfo: 1
m_Name: "\u80FD\u91CF\u8C462"
m_Name: "\u80FD\u91CF\u8C469"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -4659,7 +4795,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -4786,16 +4922,16 @@ RectTransform:
m_LocalScale: {x: 0.18382353, y: 0.18382353, z: 0.18382353}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1617939208}
- {fileID: 1946004732}
- {fileID: 1857417478}
- {fileID: 833940068}
- {fileID: 100839532}
- {fileID: 1580760510}
- {fileID: 1829128964}
- {fileID: 1495122836}
- {fileID: 1611074742}
- {fileID: 1354528297}
- {fileID: 1611074742}
- {fileID: 1495122836}
- {fileID: 1829128964}
- {fileID: 1580760510}
- {fileID: 100839532}
- {fileID: 833940068}
- {fileID: 1857417478}
- {fileID: 1946004732}
- {fileID: 1617939208}
m_Father: {fileID: 784281427}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@@ -4905,11 +5041,11 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 722552587}
- {fileID: 1818604652}
- {fileID: 1156052318}
- {fileID: 1911104685}
- {fileID: 366632241}
- {fileID: 1911104685}
- {fileID: 1156052318}
- {fileID: 1818604652}
- {fileID: 722552587}
m_Father: {fileID: 573684586}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
+33 -16
View File
@@ -119,30 +119,47 @@ public class MainCharacterCombat : MonoBehaviour
private void HandleSummonInput()
{
if (summoning || animator == null || movement == null)
{
return;
}
if (Input.GetKeyDown(KeyCode.Alpha1) || Input.GetKeyDown(KeyCode.Alpha2))
{
movement.StopMovement();
if (attacking)
{
FinishAttack();
}
}
if (Input.GetKeyDown(KeyCode.Alpha1))
{
BeginSummon(humanSoldierPrefab);
RequestSummon(1);
}
else if (Input.GetKeyDown(KeyCode.Alpha2))
{
BeginSummon(archerPrefab);
RequestSummon(2);
}
}
public bool RequestSummon(int slot)
{
if (summoning || animator == null)
{
return false;
}
GameObject prefab = slot == 1
? humanSoldierPrefab
: slot == 2
? archerPrefab
: null;
if (prefab == null)
{
return false;
}
if (movement != null)
{
movement.StopMovement();
}
if (attacking)
{
FinishAttack();
}
BeginSummon(prefab);
return true;
}
private void BeginSummon(GameObject prefab)
{
if (prefab == null)
@@ -1,4 +1,5 @@
using UnityEngine;
using UnityEngine.EventSystems;
public class MainCharacterDebugMovement : MonoBehaviour
{
@@ -71,6 +72,11 @@ public class MainCharacterDebugMovement : MonoBehaviour
return;
}
if (EventSystem.current != null && EventSystem.current.IsPointerOverGameObject())
{
return;
}
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (!Physics.Raycast(ray, out RaycastHit hit))
{
+40
View File
@@ -0,0 +1,40 @@
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Button))]
public class SummonCardButton : MonoBehaviour
{
[Min(1)]
public int summonSlot = 1;
private Button button;
private MainCharacterCombat combat;
private void Awake()
{
button = GetComponent<Button>();
combat = FindObjectOfType<MainCharacterCombat>();
button.onClick.AddListener(OnClick);
}
private void OnDestroy()
{
if (button != null)
{
button.onClick.RemoveListener(OnClick);
}
}
public void OnClick()
{
if (combat == null)
{
combat = FindObjectOfType<MainCharacterCombat>();
}
if (combat != null)
{
combat.RequestSummon(summonSlot);
}
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: CylKsXykBSg0uwlH7D3NMglVNcpDcGUo3b0yJbyu49RAp3cINkikdpc=
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: