This commit is contained in:
CortexCore
2025-02-24 23:02:43 +08:00
parent 41715e4413
commit 8261a458e2
105 changed files with 2934 additions and 696 deletions

View File

@@ -36,6 +36,19 @@ namespace BITKit
action.RegisterCallback(callback);
return this;
}
public InputActionGroup RegisterCallback(InputAction inputAction,Action<InputAction.CallbackContext> callback)
{
EnsureConfiguration();
var action = actions.GetOrAdd(inputAction.name, _=>inputAction.Clone());
allowInput.Invoke();
action.RegisterCallback(callback);
return this;
}
public InputAction EnsureCreated(InputActionReference reference)
{
@@ -57,6 +70,20 @@ namespace BITKit
return action;
}
public InputAction EnsureCreated(InputAction inputAction)
{
EnsureConfiguration();
var action = actions.GetOrAdd(inputAction.name, _ =>
{
var newAction = inputAction.Clone();
newAction.Rename(inputAction.name);
return newAction;
});
allowInput.Invoke();
return action;
}
public void Inherit(InputActionGroup other)
{
@@ -80,6 +107,12 @@ namespace BITKit
action.UnRegisterCallback(callback);
}
public void UnRegisterCallback(InputAction inputAction, Action<InputAction.CallbackContext> callback)
{
if(actions.TryGetValue(inputAction.name,out var action))
action.UnRegisterCallback(callback);
}
private void EnsureConfiguration()
{
if (state is not InitializationState.Initialized)

View File

@@ -0,0 +1,50 @@
using System;
using System.Collections;
using System.Collections.Generic;
using BITKit;
using UnityEngine;
namespace UnityEngine.InputSystem
{
public class UnityPlayerInput : MonoBehaviour
{
private readonly InputActionGroup _inputActionGroup=new();
[SerializeField] private InputActionAsset inputActionAsset;
private bool _isInitialized;
private void Start()
{
foreach (var inputActionMap in inputActionAsset.actionMaps)
{
foreach (var inputAction in inputActionMap.actions)
{
_inputActionGroup.RegisterCallback(inputAction, x =>
{
SendMessage($"On{inputAction.name}",x,SendMessageOptions.DontRequireReceiver);
});
}
}
if (_isInitialized is false)
{
_inputActionGroup.allowInput.AddElement(this);
}
_isInitialized = true;
}
private void OnEnable()
{
if (_isInitialized)
_inputActionGroup.allowInput.AddElement(this);
}
private void OnDisable()
{
_inputActionGroup.allowInput.RemoveElement(this);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6b2748010e8669a44b12cd163ea95fa2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: