
任务:替换和实装美术素材 1.在教程场景布置图标和文字提示内容 DONE 2.制作GamePlay中背景元素的动画并实装 DONE 3.替换拆迁障碍物美术素材 DONE 任务:实装音乐和音效 1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。 DONE 2.实装人摔地音效 DONE 3.实装人跑动音效 DONE 4.实装人马分离音效 DONE 5.实装创烂障碍物音效 DOING 6.实装圣火点燃音效 7.实装马磕磕碰碰音效 8.实装马似音效 9.实装马着地音效 10.实装马起跳音效 任务:实装特效 …… 任务:完善没写的零散逻辑 1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马 **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修 WAIT 2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑 DONE 3.开发GamePlay距离记录和重开系统 …… 修复Bug 1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。 2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。
53 lines
1.9 KiB
C#
53 lines
1.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.InputSystem;
|
|
|
|
/// <summary>
|
|
/// 玩家类,代表屏幕外的玩家,用来处理输入、传达信息、记录状态
|
|
/// </summary>
|
|
public class Player : UnitySingleton<Player>
|
|
{
|
|
private PlayerC playerC;
|
|
private Horse horse;
|
|
|
|
void Start()
|
|
{
|
|
//找到必要的物体和组件
|
|
FindSth();
|
|
//绑定输入
|
|
InputBinding();
|
|
}
|
|
|
|
private void FindSth()
|
|
{
|
|
try{
|
|
horse = transform.Find("马").GetComponent<Horse>();
|
|
}catch(System.Exception) {Debug.LogError("要么子物体中没有马、要么马的名字不是马、要么马身上没有Horse组件");}
|
|
|
|
}
|
|
|
|
private void InputBinding()
|
|
{
|
|
//新建了一个操控类的实例,小心多个操控类实例的坑!这个东西不会自动销毁
|
|
playerC = new PlayerC();
|
|
//绑定基本移动相关的事件
|
|
playerC.GamePlay.MoveFrontFoot.performed += ctx => horse.SetInputFrontVector(ctx.ReadValue<Vector2>());
|
|
playerC.GamePlay.MoveBackFoot.performed += ctx => horse.SetInputBackVector(ctx.ReadValue<Vector2>());
|
|
playerC.GamePlay.MoveFrontFoot.canceled += ctx => horse.SetInputFrontVector(Vector2.zero);
|
|
playerC.GamePlay.MoveBackFoot.canceled += ctx => horse.SetInputBackVector(Vector2.zero);
|
|
//绑定并拢腿的相关事件
|
|
playerC.GamePlay.MergeBackFoot.started += ctx => horse.MergeFoot(Horse.FootType.Back);
|
|
playerC.GamePlay.MergeBackFoot.canceled += ctx => horse.RecoverFoot(Horse.FootType.Back);
|
|
playerC.GamePlay.MergeFrontFoot.started += ctx => horse.MergeFoot(Horse.FootType.Front);
|
|
playerC.GamePlay.MergeFrontFoot.canceled += ctx => horse.RecoverFoot(Horse.FootType.Front);
|
|
|
|
|
|
playerC.GamePlay.Enable();
|
|
}
|
|
|
|
public void ToNullMap() => playerC.GamePlay.Disable();
|
|
public void ToMap() => playerC.GamePlay.Enable();
|
|
|
|
}
|