
1.编写塞钱箱逻辑 (1.初始为有钱 (2.创建事件,当被塞钱,修改塞钱箱状态 (3.创建事件,当被拿钱,修改塞钱箱状态 (*:修改塞钱箱继承自普通可交互物体 2.编写玩家塞钱逻辑 (1.创建交互按键,当检测到交互执行,执行所catch物体的OnCall,根据所catch物体不同触发不同的动作。当catch到的是塞钱箱,执行塞钱功能 (2.创建塞钱功能,持有特殊金币-1 3.修改爱欲品掉钱逻辑 (1.修改死亡事件,当检测到主人为地藏并且玩家身上已经没钱了的时候,生成一个特殊硬币 4.编写特殊硬币逻辑 (1.继承于可交互物体(×) (2.OnCall的时候触发玩家加钱功能 (3.物理层上不与除地面以外的其他东西碰撞 (4.捡拾上,给硬币添加一个子物体,通过子物体上的触发器和攻击类来判断捡拾与否 5.编写地藏拿钱攻击逻辑 (*.参照钟的逻辑 (1.新建地藏手 (2.新建组件:地藏手 (3.收到攻击信号后,从外部从上至下伸入一只手,伴随抖动,到一定位置后停止 (4.手有碰撞体,触碰到玩家时,对玩家造成伤害 (5.抄一段普通怪物的受击逻辑,当手被攻击了,触发动画,稍微抬起一小段,并且剧烈震动,同时通知主人被打 6.整理脚本 至此,关卡已经能按照正常的逻辑跑起来了
374 lines
14 KiB
C#
374 lines
14 KiB
C#
// GENERATED AUTOMATICALLY FROM 'Assets/InputAssets/Player.inputactions'
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine.InputSystem;
|
|
using UnityEngine.InputSystem.Utilities;
|
|
|
|
public class @Player : IInputActionCollection, IDisposable
|
|
{
|
|
public InputActionAsset asset { get; }
|
|
public @Player()
|
|
{
|
|
asset = InputActionAsset.FromJson(@"{
|
|
""name"": ""Player"",
|
|
""maps"": [
|
|
{
|
|
""name"": ""Normal"",
|
|
""id"": ""bb06cb9c-bdca-4709-b1aa-457d12d70255"",
|
|
""actions"": [
|
|
{
|
|
""name"": ""Move"",
|
|
""type"": ""Button"",
|
|
""id"": ""4e75a7bf-f61d-4467-b879-29135d8cd3d0"",
|
|
""expectedControlType"": ""Button"",
|
|
""processors"": """",
|
|
""interactions"": """"
|
|
},
|
|
{
|
|
""name"": ""Jump"",
|
|
""type"": ""Button"",
|
|
""id"": ""24250c6f-6747-478e-b81d-935903c236bf"",
|
|
""expectedControlType"": ""Button"",
|
|
""processors"": """",
|
|
""interactions"": """"
|
|
},
|
|
{
|
|
""name"": ""Wave"",
|
|
""type"": ""Button"",
|
|
""id"": ""a8c8071a-3441-4efd-919d-6bf31d7c6e65"",
|
|
""expectedControlType"": ""Button"",
|
|
""processors"": """",
|
|
""interactions"": """"
|
|
},
|
|
{
|
|
""name"": ""Sickle"",
|
|
""type"": ""Button"",
|
|
""id"": ""d92eaf00-7eaf-4292-ae80-6bfff20b5930"",
|
|
""expectedControlType"": ""Button"",
|
|
""processors"": """",
|
|
""interactions"": """"
|
|
},
|
|
{
|
|
""name"": ""Interactive"",
|
|
""type"": ""Button"",
|
|
""id"": ""7cf0a787-dc2d-42b1-9ed9-c840ccfa3ce9"",
|
|
""expectedControlType"": ""Button"",
|
|
""processors"": """",
|
|
""interactions"": """"
|
|
}
|
|
],
|
|
""bindings"": [
|
|
{
|
|
""name"": ""键盘"",
|
|
""id"": ""aab0762b-c5b8-4cbf-a345-04491807edd8"",
|
|
""path"": ""1DAxis"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Move"",
|
|
""isComposite"": true,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": ""negative"",
|
|
""id"": ""502ab101-3e1c-47c5-8097-d026396c86bd"",
|
|
""path"": ""<Keyboard>/a"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": ""Play"",
|
|
""action"": ""Move"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": true
|
|
},
|
|
{
|
|
""name"": ""positive"",
|
|
""id"": ""e22fc4aa-94a8-448b-b0d8-94ab256cc513"",
|
|
""path"": ""<Keyboard>/d"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": ""Play"",
|
|
""action"": ""Move"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": true
|
|
},
|
|
{
|
|
""name"": ""手柄"",
|
|
""id"": ""29d79b45-4963-4fe0-8b84-fe2781deb94e"",
|
|
""path"": ""1DAxis"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Move"",
|
|
""isComposite"": true,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": ""negative"",
|
|
""id"": ""9fd08809-1fed-492c-a498-e52c1201c234"",
|
|
""path"": ""<Gamepad>/leftStick/left"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": ""Play"",
|
|
""action"": ""Move"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": true
|
|
},
|
|
{
|
|
""name"": ""positive"",
|
|
""id"": ""5581306c-cc74-4e79-ab4e-96385ffb026c"",
|
|
""path"": ""<Gamepad>/leftStick/right"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": ""Play"",
|
|
""action"": ""Move"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": true
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""52d29d03-d5c1-4c8b-a2d0-222c4691b2e0"",
|
|
""path"": ""<Gamepad>/buttonSouth"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Jump"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""e5c34c35-2a26-401f-b1d0-5ce3d0eacf41"",
|
|
""path"": ""<Keyboard>/k"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Jump"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""1dcf7891-85dd-45b2-978c-103548a0da96"",
|
|
""path"": ""<Gamepad>/buttonWest"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Wave"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""68b1b15c-87ae-4596-87d6-19744a830390"",
|
|
""path"": ""<Keyboard>/j"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Wave"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""e091c2cb-5d64-4c6c-80a8-2c5b3a3e03df"",
|
|
""path"": ""<Keyboard>/u"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Sickle"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""e9e35d09-e599-40ed-b8e5-ab03961ca484"",
|
|
""path"": ""<Gamepad>/rightTrigger"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": """",
|
|
""action"": ""Sickle"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""d5e36b3d-645c-4a18-914e-7a7ae9046eda"",
|
|
""path"": ""<XInputController>/buttonNorth"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": ""Play"",
|
|
""action"": ""Interactive"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
},
|
|
{
|
|
""name"": """",
|
|
""id"": ""30b75de0-1d5e-403d-8da3-a8da696490ee"",
|
|
""path"": ""<Keyboard>/f"",
|
|
""interactions"": """",
|
|
""processors"": """",
|
|
""groups"": ""Play"",
|
|
""action"": ""Interactive"",
|
|
""isComposite"": false,
|
|
""isPartOfComposite"": false
|
|
}
|
|
]
|
|
}
|
|
],
|
|
""controlSchemes"": [
|
|
{
|
|
""name"": ""Play"",
|
|
""bindingGroup"": ""Play"",
|
|
""devices"": [
|
|
{
|
|
""devicePath"": ""<Gamepad>"",
|
|
""isOptional"": true,
|
|
""isOR"": false
|
|
},
|
|
{
|
|
""devicePath"": ""<Keyboard>"",
|
|
""isOptional"": false,
|
|
""isOR"": false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}");
|
|
// Normal
|
|
m_Normal = asset.FindActionMap("Normal", throwIfNotFound: true);
|
|
m_Normal_Move = m_Normal.FindAction("Move", throwIfNotFound: true);
|
|
m_Normal_Jump = m_Normal.FindAction("Jump", throwIfNotFound: true);
|
|
m_Normal_Wave = m_Normal.FindAction("Wave", throwIfNotFound: true);
|
|
m_Normal_Sickle = m_Normal.FindAction("Sickle", throwIfNotFound: true);
|
|
m_Normal_Interactive = m_Normal.FindAction("Interactive", throwIfNotFound: true);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
UnityEngine.Object.Destroy(asset);
|
|
}
|
|
|
|
public InputBinding? bindingMask
|
|
{
|
|
get => asset.bindingMask;
|
|
set => asset.bindingMask = value;
|
|
}
|
|
|
|
public ReadOnlyArray<InputDevice>? devices
|
|
{
|
|
get => asset.devices;
|
|
set => asset.devices = value;
|
|
}
|
|
|
|
public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes;
|
|
|
|
public bool Contains(InputAction action)
|
|
{
|
|
return asset.Contains(action);
|
|
}
|
|
|
|
public IEnumerator<InputAction> GetEnumerator()
|
|
{
|
|
return asset.GetEnumerator();
|
|
}
|
|
|
|
IEnumerator IEnumerable.GetEnumerator()
|
|
{
|
|
return GetEnumerator();
|
|
}
|
|
|
|
public void Enable()
|
|
{
|
|
asset.Enable();
|
|
}
|
|
|
|
public void Disable()
|
|
{
|
|
asset.Disable();
|
|
}
|
|
|
|
// Normal
|
|
private readonly InputActionMap m_Normal;
|
|
private INormalActions m_NormalActionsCallbackInterface;
|
|
private readonly InputAction m_Normal_Move;
|
|
private readonly InputAction m_Normal_Jump;
|
|
private readonly InputAction m_Normal_Wave;
|
|
private readonly InputAction m_Normal_Sickle;
|
|
private readonly InputAction m_Normal_Interactive;
|
|
public struct NormalActions
|
|
{
|
|
private @Player m_Wrapper;
|
|
public NormalActions(@Player wrapper) { m_Wrapper = wrapper; }
|
|
public InputAction @Move => m_Wrapper.m_Normal_Move;
|
|
public InputAction @Jump => m_Wrapper.m_Normal_Jump;
|
|
public InputAction @Wave => m_Wrapper.m_Normal_Wave;
|
|
public InputAction @Sickle => m_Wrapper.m_Normal_Sickle;
|
|
public InputAction @Interactive => m_Wrapper.m_Normal_Interactive;
|
|
public InputActionMap Get() { return m_Wrapper.m_Normal; }
|
|
public void Enable() { Get().Enable(); }
|
|
public void Disable() { Get().Disable(); }
|
|
public bool enabled => Get().enabled;
|
|
public static implicit operator InputActionMap(NormalActions set) { return set.Get(); }
|
|
public void SetCallbacks(INormalActions instance)
|
|
{
|
|
if (m_Wrapper.m_NormalActionsCallbackInterface != null)
|
|
{
|
|
@Move.started -= m_Wrapper.m_NormalActionsCallbackInterface.OnMove;
|
|
@Move.performed -= m_Wrapper.m_NormalActionsCallbackInterface.OnMove;
|
|
@Move.canceled -= m_Wrapper.m_NormalActionsCallbackInterface.OnMove;
|
|
@Jump.started -= m_Wrapper.m_NormalActionsCallbackInterface.OnJump;
|
|
@Jump.performed -= m_Wrapper.m_NormalActionsCallbackInterface.OnJump;
|
|
@Jump.canceled -= m_Wrapper.m_NormalActionsCallbackInterface.OnJump;
|
|
@Wave.started -= m_Wrapper.m_NormalActionsCallbackInterface.OnWave;
|
|
@Wave.performed -= m_Wrapper.m_NormalActionsCallbackInterface.OnWave;
|
|
@Wave.canceled -= m_Wrapper.m_NormalActionsCallbackInterface.OnWave;
|
|
@Sickle.started -= m_Wrapper.m_NormalActionsCallbackInterface.OnSickle;
|
|
@Sickle.performed -= m_Wrapper.m_NormalActionsCallbackInterface.OnSickle;
|
|
@Sickle.canceled -= m_Wrapper.m_NormalActionsCallbackInterface.OnSickle;
|
|
@Interactive.started -= m_Wrapper.m_NormalActionsCallbackInterface.OnInteractive;
|
|
@Interactive.performed -= m_Wrapper.m_NormalActionsCallbackInterface.OnInteractive;
|
|
@Interactive.canceled -= m_Wrapper.m_NormalActionsCallbackInterface.OnInteractive;
|
|
}
|
|
m_Wrapper.m_NormalActionsCallbackInterface = instance;
|
|
if (instance != null)
|
|
{
|
|
@Move.started += instance.OnMove;
|
|
@Move.performed += instance.OnMove;
|
|
@Move.canceled += instance.OnMove;
|
|
@Jump.started += instance.OnJump;
|
|
@Jump.performed += instance.OnJump;
|
|
@Jump.canceled += instance.OnJump;
|
|
@Wave.started += instance.OnWave;
|
|
@Wave.performed += instance.OnWave;
|
|
@Wave.canceled += instance.OnWave;
|
|
@Sickle.started += instance.OnSickle;
|
|
@Sickle.performed += instance.OnSickle;
|
|
@Sickle.canceled += instance.OnSickle;
|
|
@Interactive.started += instance.OnInteractive;
|
|
@Interactive.performed += instance.OnInteractive;
|
|
@Interactive.canceled += instance.OnInteractive;
|
|
}
|
|
}
|
|
}
|
|
public NormalActions @Normal => new NormalActions(this);
|
|
private int m_PlaySchemeIndex = -1;
|
|
public InputControlScheme PlayScheme
|
|
{
|
|
get
|
|
{
|
|
if (m_PlaySchemeIndex == -1) m_PlaySchemeIndex = asset.FindControlSchemeIndex("Play");
|
|
return asset.controlSchemes[m_PlaySchemeIndex];
|
|
}
|
|
}
|
|
public interface INormalActions
|
|
{
|
|
void OnMove(InputAction.CallbackContext context);
|
|
void OnJump(InputAction.CallbackContext context);
|
|
void OnWave(InputAction.CallbackContext context);
|
|
void OnSickle(InputAction.CallbackContext context);
|
|
void OnInteractive(InputAction.CallbackContext context);
|
|
}
|
|
}
|