清理项目目录,引入 InputModule 做多平台输入适配

This commit is contained in:
SepComet
2026-06-16 17:09:19 +08:00
committed by basil
parent d28ccaa7f9
commit 29c4468d54
227 changed files with 16702 additions and 2059 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# 敌人基础属性表
# Id EntityTypeId MaxHealth HpAddPerLevel AttackDamage AttackCooldown AttackRange Speed CoinDrop ExpDrop DropPercent Params
# int int int int int float float float int int float string
# 敌人编号 策划备注 敌人实体编号 最大生命 每关卡增加生命 基础伤害 攻击间隔 攻击范围 移动速度 金币掉落 经验掉落 掉落概率 额外参数
# 敌人编号 策划备注 实体编号 最大生命 每关卡增加生命 基础伤害 攻击间隔 攻击范围 移动速度 金币掉落 经验掉落 掉落概率 额外参数
1 近战敌人 101 50 50 1 1 1.5 3 5 1 0.3 []
2 远程敌人 102 40 40 1 2 8 2.5 4 2 0.2 []
+1
View File
@@ -12,3 +12,4 @@
203 游戏HUD HudForm HUD False True
204 角色升级奖励页 LevelUpForm Default False True
205 物品信息展示 DisplayItemInfoForm Default False False
206 虚拟摇杆 JoystickForm Default False False
+1 -1
View File
@@ -1,6 +1,6 @@
# Id 列1 EntityTypeId Title IconAssetName Rarity Price PriceRandomPercent Attack Cooldown AttackRange AttackSoundId Pramas Modifiers
# int int string string RarityType int float int float float int string[] StatModifier[]
# 武器编号 策划备注 武器实体编号 武器名 图标资源名 道具品质 武器价格 价格浮动 伤害 冷却 范围 攻击音效编号 额外参数 额外属性
# 武器编号 策划备注 实体编号 武器名 图标资源名 道具品质 武器价格 价格浮动 伤害 冷却 范围 攻击音效编号 额外参数 额外属性
1 玩家武器 201 小刀 Almighty_Icon White 120 0.05 100 1.5 5 10000 {"hitRadius":2} []
2 202 手枪 Almighty_Icon White 130 0.05 120 1 15 10000 {} []
3 203 斧头 Almighty_Icon White 100 0.1 150 2 5 10000 {"sectorAngle":120} []
@@ -58,5 +58,10 @@ namespace SepCore.Definition
/// 物品信息展示页
/// </summary>
DisplayItemInfoForm = 205,
/// <summary>
/// 虚拟摇杆。
/// </summary>
JoystickForm = 206,
}
}
@@ -1,6 +1,4 @@
using SepCore.UI;
namespace SepCore.UI
namespace SepCore.UI
{
/// <summary>
/// 对话框显示数据。
@@ -27,7 +27,7 @@ namespace SepCore.UI
protected override void RefreshUI(DisplayItemInfoForm form, DisplayItemInfoContext context)
{
form.RefreshUI(context);
form.RefreshUI(context).Forget();
}
protected override void CloseLoadedFormDirect(DisplayItemInfoForm form)
@@ -91,7 +91,7 @@ namespace SepCore.UI
return;
}
RefreshUI(context);
RefreshUI(context).Forget();
}
protected override void OnClose(bool isShutdown, object userData)
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e1f796998c8814d45993d47e84e802ec
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
using UnityEngine;
namespace SepCore.UI
{
public class JoystickContext : UIContext
{
public Vector2 Direction { get; set; }
public float Magnitude { get; set; }
}
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 729ec3f897dd27948a735906cd0c185a
guid: 52c3c2991dab492439d786507182ec4c
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -0,0 +1,48 @@
using Cysharp.Threading.Tasks;
using SepCore.Definition;
using SepCore.InputModule;
using UnityGameFramework.Runtime;
namespace SepCore.UI
{
public class JoystickController : UIControllerBase<JoystickContext, JoystickForm>
{
protected override UIFormType UIFormType => UIFormType.JoystickForm;
protected override void RefreshUI(JoystickForm form, JoystickContext context)
{
form.RefreshUI(context);
}
protected override void SubscribeCustomEvents()
{
GameEntry.InputModule.CommandTriggered += OnCommandTriggered;
}
protected override void UnsubscribeCustomEvents()
{
GameEntry.InputModule.CommandTriggered -= OnCommandTriggered;
}
public override async UniTask OpenUIAsync(object userData = null, float timeout = 30f)
{
JoystickContext context = new JoystickContext();
await OpenFormAsync(context, timeout);
}
public override void BindUseCase(IUIUseCase useCase)
{
Log.Info("JoystickController doesn't need UseCase");
}
private void OnCommandTriggered(InputCommand cmd)
{
if (cmd.ActionId != InputActionId.Move) return;
if (Context == null || Form == null) return;
Context.Direction = cmd.Vector2Value;
Context.Magnitude = cmd.Vector2Value.magnitude;
Form.RefreshUI(Context);
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ea7ab1500ac7fa540b3ed92295f7687c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,25 @@
using UnityEngine;
namespace SepCore.UI
{
public class JoystickForm : UGuiForm
{
public void RefreshUI(JoystickContext context)
{
}
#region FSM
protected override void OnInit(object userData)
{
base.OnInit(userData);
}
protected override void OnClose(bool isShutdown, object userData)
{
base.OnClose(isShutdown, userData);
}
#endregion
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 62121b0e23245f14fb22e8ca418c8ddf
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -61,7 +61,7 @@ namespace SepCore.UI
EnsureItemCount(targetCount);
for (int i = 0; i < targetCount; i++)
{
_activeItems[i].OnInit(context.ItemContexts[i], i);
_activeItems[i].OnInit(context.ItemContexts[i], i).Forget();
}
LayoutItems();
@@ -98,7 +98,7 @@ namespace SepCore.UI
int index = _activeItems.Count;
_activeItems.Add(item);
item.OnInit(itemContext, index);
item.OnInit(itemContext, index).Forget();
item.SetIndex(index);
int columnCount = _fixedColumnCount > 0 ? _fixedColumnCount : CalculateColumnCount(GetRootWidth());
@@ -26,7 +26,7 @@ namespace SepCore.UI
{
if (roleIndex < _context.RoleItemContexts.Length)
{
_roleItems[itemIndex].OnInit(_context.RoleItemContexts[roleIndex]);
_roleItems[itemIndex].OnInit(_context.RoleItemContexts[roleIndex]).Forget();
_roleItems[itemIndex].gameObject.SetActive(true);
}
else
@@ -97,4 +97,4 @@ namespace SepCore.UI
GameEntry.Event.Fire(this, MenuSelectRoleReturnEventArgs.Create());
}
}
}
}
@@ -6,7 +6,8 @@
"GUID:f51ebe6a0ceec4240a699833d6309b23",
"GUID:363c5eb08ff8e6a439b85e37b8c20d96",
"GUID:47a82ffa13c291447ab895cd0bc251cd",
"GUID:436e23dbdc31e7d4fb5c3f804548b2df"
"GUID:436e23dbdc31e7d4fb5c3f804548b2df",
"GUID:d54b9488b03814a44ab937f0aeb738b1"
],
"includePlatforms": [],
"excludePlatforms": [],
@@ -50,6 +50,8 @@ namespace SepCore.Procedure
_loadedFlag.Clear();
GameEntry.InputModule?.OnInit();
PreloadResources();
}
@@ -1,7 +1,9 @@
using System;
using Cysharp.Threading.Tasks;
using SepCore.Event;
using SepCore.DataTable;
using SepCore.Entity;
using SepCore.Definition;
using GameFramework.Fsm;
using GameFramework.Procedure;
using SepCore.EnemyManager;
@@ -53,6 +55,11 @@ namespace SepCore.Procedure
_enemyManager.OnInit(drLevel, Player);
if (Player != null) Player.Enable = true;
if (Application.isMobilePlatform)
{
GameEntry.UIRouter.OpenUIAsync(UIFormType.JoystickForm).Forget();
}
}
public override void OnUpdate(float elapseSeconds, float realElapseSeconds)
@@ -78,6 +85,8 @@ namespace SepCore.Procedure
public override void OnLeave()
{
GameEntry.UIRouter.CloseUIAsync(UIFormType.JoystickForm).Forget();
// 隐藏所有敌人实体
_enemyManager.OnReset();
@@ -84,6 +84,7 @@ namespace SepCore.Procedure
base.OnEnter(procedureOwner);
GameEntry.SimulationWorld?.ClearSimulationState();
GameEntry.InputModule?.SetGameplayExploreContext();
CurrentLevel = 1;
_currentPlayerData = new PlayerData(-1, 1001);
@@ -2,6 +2,7 @@
using SepCore.DamageText;
using SepCore.EnemyManager;
using SepCore.HPBar;
using SepCore.InputModule.Runtime;
using SepCore.SpriteCache;
using SepCore.UIRouter;
using SepCore.Simulation;
@@ -24,6 +25,8 @@ public partial class GameEntry
public static SpriteCacheComponent SpriteCache { get; private set; }
public static UIRouterComponent UIRouter { get; private set; }
public static InputModuleComponent InputModule { get; private set; }
private static void InitCustomComponents()
{
@@ -34,5 +37,6 @@ public partial class GameEntry
SimulationWorld = UnityGameFramework.Runtime.GameEntry.GetComponent<SimulationWorld>();
SpriteCache = UnityGameFramework.Runtime.GameEntry.GetComponent<SpriteCacheComponent>();
UIRouter = UnityGameFramework.Runtime.GameEntry.GetComponent<UIRouterComponent>();
InputModule = UnityGameFramework.Runtime.GameEntry.GetComponent<InputModuleComponent>();
}
}
@@ -1,50 +1,44 @@
using SepCore.InputModule;
using UnityEngine;
namespace SepCore.Components
{
public class InputComponent : MonoBehaviour
{
private PlayerInputActions _inputActions;
[SerializeField] private bool _isListening = false;
private bool _isListening = false;
[SerializeField] private Vector3 _direction = Vector3.zero;
public Vector3 Direction => _direction;
public void OnInit()
{
_inputActions = new();
GameEntry.InputModule.RegisterListener(InputActionId.Move, OnMove);
}
public void OnUpdate(float elapseSeconds, float realElapseSeconds)
{
if (_isListening && _inputActions != null)
{
ReadInput();
}
}
public void OnReset()
{
_inputActions = null;
GameEntry.InputModule.UnregisterListener(InputActionId.Move, OnMove);
_isListening = false;
_direction = Vector3.zero;
}
private void ReadInput()
private void OnMove(InputCommand cmd)
{
Vector2 rawDir = _inputActions.Game.Move.ReadValue<Vector2>();
_direction = new Vector3(rawDir.x, 0, rawDir.y);
if (!_isListening) return;
Vector2 raw = cmd.Vector2Value;
_direction = new Vector3(raw.x, 0, raw.y);
}
public void SetListening(bool isListening)
{
_isListening = isListening;
if (_isListening)
if (!_isListening)
{
_inputActions.Enable();
}
else
{
_inputActions.Disable();
_direction = Vector3.zero;
}
}
}
@@ -1,411 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
// version 1.14.2
// from Assets/PlayerInputActions.inputactions
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;
/// <summary>
/// Provides programmatic access to <see cref="InputActionAsset" />, <see cref="InputActionMap" />, <see cref="InputAction" /> and <see cref="InputControlScheme" /> instances defined in asset "Assets/PlayerInputActions.inputactions".
/// </summary>
/// <remarks>
/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified.
/// </remarks>
/// <example>
/// <code>
/// using namespace UnityEngine;
/// using UnityEngine.InputSystem;
///
/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface.
/// public class Example : MonoBehaviour, MyActions.IPlayerActions
/// {
/// private MyActions_Actions m_Actions; // Source code representation of asset.
/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map.
///
/// void Awake()
/// {
/// m_Actions = new MyActions_Actions(); // Create asset object.
/// m_Player = m_Actions.Player; // Extract action map object.
/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions.
/// }
///
/// void OnDestroy()
/// {
/// m_Actions.Dispose(); // Destroy asset object.
/// }
///
/// void OnEnable()
/// {
/// m_Player.Enable(); // Enable all actions within map.
/// }
///
/// void OnDisable()
/// {
/// m_Player.Disable(); // Disable all actions within map.
/// }
///
/// #region Interface implementation of MyActions.IPlayerActions
///
/// // Invoked when "Move" action is either started, performed or canceled.
/// public void OnMove(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnMove: {context.ReadValue&lt;Vector2&gt;()}");
/// }
///
/// // Invoked when "Attack" action is either started, performed or canceled.
/// public void OnAttack(InputAction.CallbackContext context)
/// {
/// Debug.Log($"OnAttack: {context.ReadValue&lt;float&gt;()}");
/// }
///
/// #endregion
/// }
/// </code>
/// </example>
public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
{
/// <summary>
/// Provides access to the underlying asset instance.
/// </summary>
public InputActionAsset asset { get; }
/// <summary>
/// Constructs a new instance.
/// </summary>
public @PlayerInputActions()
{
asset = InputActionAsset.FromJson(@"{
""version"": 1,
""name"": ""PlayerInputActions"",
""maps"": [
{
""name"": ""Game"",
""id"": ""c320222a-39c4-47d5-bb95-1702176bdb69"",
""actions"": [
{
""name"": ""Move"",
""type"": ""Value"",
""id"": ""4875d1e6-7f0e-490d-88f4-b97f322ce0dd"",
""expectedControlType"": ""Vector2"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
}
],
""bindings"": [
{
""name"": ""2D Vector"",
""id"": ""c2c107da-b6b9-4daf-be56-c0fc0a06b4d9"",
""path"": ""2DVector"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": true,
""isPartOfComposite"": false
},
{
""name"": ""up"",
""id"": ""a3b11b4d-c157-417a-a38a-d89a034da71b"",
""path"": ""<Keyboard>/w"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""down"",
""id"": ""0a0a8e30-3cf7-4889-aeb1-e8ddebcd944b"",
""path"": ""<Keyboard>/s"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""left"",
""id"": ""2eeac222-1829-4c5b-9829-5e36b3fe989e"",
""path"": ""<Keyboard>/a"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""right"",
""id"": ""89d5e951-0db5-4f1e-806b-f29f84507a34"",
""path"": ""<Keyboard>/d"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""2D Vector"",
""id"": ""5aa90a81-3055-4e18-8965-79346837eb41"",
""path"": ""2DVector"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": true,
""isPartOfComposite"": false
},
{
""name"": ""up"",
""id"": ""63ca70db-2d24-4e91-b350-2a0de928c85b"",
""path"": ""<Gamepad>/dpad/up"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""down"",
""id"": ""4ba12cd2-9814-4ca9-ab36-e9bc830d1f0f"",
""path"": ""<Gamepad>/dpad/down"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""left"",
""id"": ""f9801c54-2f8e-4216-a09a-104f9e0f550c"",
""path"": ""<Gamepad>/dpad/left"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
},
{
""name"": ""right"",
""id"": ""c6033b7b-191c-431c-98d0-382e9491acf6"",
""path"": ""<Gamepad>/dpad/right"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
""isPartOfComposite"": true
}
]
}
],
""controlSchemes"": []
}");
// Game
m_Game = asset.FindActionMap("Game", throwIfNotFound: true);
m_Game_Move = m_Game.FindAction("Move", throwIfNotFound: true);
}
~@PlayerInputActions()
{
UnityEngine.Debug.Assert(!m_Game.enabled, "This will cause a leak and performance issues, PlayerInputActions.Game.Disable() has not been called.");
}
/// <summary>
/// Destroys this asset and all associated <see cref="InputAction"/> instances.
/// </summary>
public void Dispose()
{
UnityEngine.Object.Destroy(asset);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindingMask" />
public InputBinding? bindingMask
{
get => asset.bindingMask;
set => asset.bindingMask = value;
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.devices" />
public ReadOnlyArray<InputDevice>? devices
{
get => asset.devices;
set => asset.devices = value;
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.controlSchemes" />
public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Contains(InputAction)" />
public bool Contains(InputAction action)
{
return asset.Contains(action);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.GetEnumerator()" />
public IEnumerator<InputAction> GetEnumerator()
{
return asset.GetEnumerator();
}
/// <inheritdoc cref="IEnumerable.GetEnumerator()" />
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Enable()" />
public void Enable()
{
asset.Enable();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.Disable()" />
public void Disable()
{
asset.Disable();
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.bindings" />
public IEnumerable<InputBinding> bindings => asset.bindings;
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindAction(string, bool)" />
public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
{
return asset.FindAction(actionNameOrId, throwIfNotFound);
}
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionAsset.FindBinding(InputBinding, out InputAction)" />
public int FindBinding(InputBinding bindingMask, out InputAction action)
{
return asset.FindBinding(bindingMask, out action);
}
// Game
private readonly InputActionMap m_Game;
private List<IGameActions> m_GameActionsCallbackInterfaces = new List<IGameActions>();
private readonly InputAction m_Game_Move;
/// <summary>
/// Provides access to input actions defined in input action map "Game".
/// </summary>
public struct GameActions
{
private @PlayerInputActions m_Wrapper;
/// <summary>
/// Construct a new instance of the input action map wrapper class.
/// </summary>
public GameActions(@PlayerInputActions wrapper) { m_Wrapper = wrapper; }
/// <summary>
/// Provides access to the underlying input action "Game/Move".
/// </summary>
public InputAction @Move => m_Wrapper.m_Game_Move;
/// <summary>
/// Provides access to the underlying input action map instance.
/// </summary>
public InputActionMap Get() { return m_Wrapper.m_Game; }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Enable()" />
public void Enable() { Get().Enable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.Disable()" />
public void Disable() { Get().Disable(); }
/// <inheritdoc cref="UnityEngine.InputSystem.InputActionMap.enabled" />
public bool enabled => Get().enabled;
/// <summary>
/// Implicitly converts an <see ref="GameActions" /> to an <see ref="InputActionMap" /> instance.
/// </summary>
public static implicit operator InputActionMap(GameActions set) { return set.Get(); }
/// <summary>
/// Adds <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <param name="instance">Callback instance.</param>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c> or <paramref name="instance"/> have already been added this method does nothing.
/// </remarks>
/// <seealso cref="GameActions" />
public void AddCallbacks(IGameActions instance)
{
if (instance == null || m_Wrapper.m_GameActionsCallbackInterfaces.Contains(instance)) return;
m_Wrapper.m_GameActionsCallbackInterfaces.Add(instance);
@Move.started += instance.OnMove;
@Move.performed += instance.OnMove;
@Move.canceled += instance.OnMove;
}
/// <summary>
/// Removes <see cref="InputAction.started"/>, <see cref="InputAction.performed"/> and <see cref="InputAction.canceled"/> callbacks provided via <param cref="instance" /> on all input actions contained in this map.
/// </summary>
/// <remarks>
/// Calling this method when <paramref name="instance" /> have not previously been registered has no side-effects.
/// </remarks>
/// <seealso cref="GameActions" />
private void UnregisterCallbacks(IGameActions instance)
{
@Move.started -= instance.OnMove;
@Move.performed -= instance.OnMove;
@Move.canceled -= instance.OnMove;
}
/// <summary>
/// Unregisters <param cref="instance" /> and unregisters all input action callbacks via <see cref="GameActions.UnregisterCallbacks(IGameActions)" />.
/// </summary>
/// <seealso cref="GameActions.UnregisterCallbacks(IGameActions)" />
public void RemoveCallbacks(IGameActions instance)
{
if (m_Wrapper.m_GameActionsCallbackInterfaces.Remove(instance))
UnregisterCallbacks(instance);
}
/// <summary>
/// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via <param cref="instance" />.
/// </summary>
/// <remarks>
/// If <paramref name="instance" /> is <c>null</c>, calling this method will only unregister all existing callbacks but not register any new callbacks.
/// </remarks>
/// <seealso cref="GameActions.AddCallbacks(IGameActions)" />
/// <seealso cref="GameActions.RemoveCallbacks(IGameActions)" />
/// <seealso cref="GameActions.UnregisterCallbacks(IGameActions)" />
public void SetCallbacks(IGameActions instance)
{
foreach (var item in m_Wrapper.m_GameActionsCallbackInterfaces)
UnregisterCallbacks(item);
m_Wrapper.m_GameActionsCallbackInterfaces.Clear();
AddCallbacks(instance);
}
}
/// <summary>
/// Provides a new <see cref="GameActions" /> instance referencing this action map.
/// </summary>
public GameActions @Game => new GameActions(this);
/// <summary>
/// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Game" which allows adding and removing callbacks.
/// </summary>
/// <seealso cref="GameActions.AddCallbacks(IGameActions)" />
/// <seealso cref="GameActions.RemoveCallbacks(IGameActions)" />
public interface IGameActions
{
/// <summary>
/// Method invoked when associated input action "Move" is either <see cref="UnityEngine.InputSystem.InputAction.started" />, <see cref="UnityEngine.InputSystem.InputAction.performed" /> or <see cref="UnityEngine.InputSystem.InputAction.canceled" />.
/// </summary>
/// <seealso cref="UnityEngine.InputSystem.InputAction.started" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.performed" />
/// <seealso cref="UnityEngine.InputSystem.InputAction.canceled" />
void OnMove(InputAction.CallbackContext context);
}
}
@@ -10,7 +10,8 @@
"GUID:f51ebe6a0ceec4240a699833d6309b23",
"GUID:6055be8ebefd69e48b49212b09b47b2f",
"GUID:fca0f81bc71f1944887dd65f134c54a0",
"GUID:47a82ffa13c291447ab895cd0bc251cd"
"GUID:47a82ffa13c291447ab895cd0bc251cd",
"GUID:d54b9488b03814a44ab937f0aeb738b1"
],
"includePlatforms": [],
"excludePlatforms": [],
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 337bc362617c8994fb0248fa5d5fd4a8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -8,6 +8,7 @@ using Random = UnityEngine.Random;
using UnityGameFramework.Runtime;
using SepCore.CustomUtility;
using GameFramework.DataTable;
using UnityEngine;
namespace SepCore.UI
{
@@ -103,7 +104,7 @@ namespace SepCore.UI
return null;
}
int finalCount = count > 0 ? System.Math.Min(count, _allRewards.Length) : _allRewards.Length;
int finalCount = count > 0 ? Mathf.Min(count, _allRewards.Length) : _allRewards.Length;
List<DRLevelUpReward> selections = new List<DRLevelUpReward>(finalCount);
int currentLevel = _player != null ? _player.CurrentLevel : 1;
@@ -0,0 +1,324 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &432761290125876155
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8911420539346615752}
- component: {fileID: 4597922492386916312}
- component: {fileID: 2677270053848589844}
- component: {fileID: 7195016667016821818}
- component: {fileID: 5642050948266763754}
m_Layer: 5
m_Name: Joystick
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8911420539346615752
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 432761290125876155}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2933049423258951194}
m_Father: {fileID: 1240477106847696537}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 700, y: 400}
m_SizeDelta: {x: 1400, y: 800}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4597922492386916312
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 432761290125876155}
m_CullTransparentMesh: 1
--- !u!114 &2677270053848589844
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 432761290125876155}
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: 0}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
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!114 &7195016667016821818
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 432761290125876155}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 997d14c0348d4394a89e50969e0e357b, type: 3}
m_Name:
m_EditorClassIdentifier:
_actionId: 5
_contextId: 3
_injectDeviceKind: 1
_inputModule: {fileID: 0}
--- !u!114 &5642050948266763754
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 432761290125876155}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6a48c2994a21fff46a4cd3b1e9936b64, type: 3}
m_Name:
m_EditorClassIdentifier:
handleRange: 1
deadZone: 0
axisOptions: 0
snapX: 0
snapY: 0
background: {fileID: 2933049423258951194}
handle: {fileID: 112564676018516795}
--- !u!1 &955372105871988025
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2933049423258951194}
- component: {fileID: 762033976905170283}
- component: {fileID: 6794810356590289561}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2933049423258951194
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 955372105871988025}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 112564676018516795}
m_Father: {fileID: 8911420539346615752}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 500, y: 400}
m_SizeDelta: {x: 256, y: 256}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &762033976905170283
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 955372105871988025}
m_CullTransparentMesh: 0
--- !u!114 &6794810356590289561
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 955372105871988025}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: a88f3ef9ffbaa054483f4aa3e878b3dd, 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!1 &4824209759828786859
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1240477106847696537}
- component: {fileID: 7154331029084587150}
- component: {fileID: 3889276396985164479}
m_Layer: 5
m_Name: JoystickForm
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1240477106847696537
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4824209759828786859}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8911420539346615752}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!222 &7154331029084587150
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4824209759828786859}
m_CullTransparentMesh: 0
--- !u!114 &3889276396985164479
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4824209759828786859}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 62121b0e23245f14fb22e8ca418c8ddf, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &4933909391047763762
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 112564676018516795}
- component: {fileID: 8795014530833344346}
- component: {fileID: 6237074904747980181}
m_Layer: 5
m_Name: Handle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &112564676018516795
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4933909391047763762}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2933049423258951194}
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: 0}
m_SizeDelta: {x: 128, y: 128}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8795014530833344346
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4933909391047763762}
m_CullTransparentMesh: 0
--- !u!114 &6237074904747980181
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4933909391047763762}
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: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 3bd624b4217e38b43ac38e26b90607bf, 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
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b8848e672f7437f42a6285a4fe499afb
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: