religion/Assets/Scripts/Hammer.cs
Roman 07d619494b 任务:搭建基本的系统
1.优化一些手感和战斗效果
(1.走动时轻微震动手柄(通过动画Event实现,以匹配脚步)
(2.被打的时候剧烈震动手柄,中幅度震动屏幕
(3.锤子击中的时候中幅度震动手柄
(*.完善震动管理员逻辑以解决震动的覆盖问题
(4.发射镰刀的时候轻微震动手柄,轻微震动屏幕
(5.为发射镰刀添加动画
(6.为锤子的空挥添加轻微震动

2.创建木马BossStageTest场景
(1.创建一些必要的元素
(2.创建木马逻辑组件

3.编写木马逻辑
(1.继承自Enemy
(2.参考地藏逻辑,做出三种攻击的协程
(3.让木马动起来,始终向右
(4.让相机上下轻微震动起来
(5.让手柄一直震动,模拟大型物体的感觉
(6.将空气墙绑在马身上
(7.编写召唤小怪的攻击方式
(*:当触发召唤小怪的攻击,在视野右边,每隔若干随机时间生成一个伊斯兰,生成到指定数量后,发送攻击结束信号。

4.编写地面逻辑
(1.让地面能够无限向右平铺
(*:在地面的末端安排一个触发器,当木马完全离开触发器,使地面移动至地面宽度两倍的右边
(2.将光源绑在地面,这样不会出现远了会失去光照的问题

*:目前伊斯兰小怪在BossStage有一些Bug,明天再修吧
2021-12-12 02:08:39 +08:00

23 lines
793 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 锤子类,主要判定下攻击
/// </summary>
public class Hammer : MonoBehaviour
{
//当有东西进入触发器
public void OnTriggerEnter2D(Collider2D other){
//看看是不是敌人,再看下它此时能不能被打
if (other.TryGetComponent<Enemy>(out Enemy enemy) && enemy.canBeHit && !other.isTrigger){
enemy.OnBeHit(MyPlayer.AtkMethod.,
(enemy.transform.position.x -
transform.position.x > 0) ? -1 : 1);
//击中成功后中幅度震动一下手柄
StartCoroutine(FindObjectOfType<VibrationManager>().ShakePad(0.5f,0.3f,0.2f,VibrationManager.PadShakeitem.));
}
}
}