Roman 37ccc08c85 任务:搭建基本的系统
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.整理脚本

至此,关卡已经能按照正常的逻辑跑起来了
2021-12-11 02:12:12 +08:00

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);
}
}