Roman 8234d4567b 任务:替换现有美术素材和动画、完善游戏的流程化
场景【第一关】
1.导入麒哥动画包9
2.替换动画【修复电话线中】
3.替换动画化【行走】【跑步】
4.在第一个地雷前面插入了第一个警示牌
5.适配了第一关的坑的上下点
6.在上下坑动画中如果玩家突然转向,会触发很迷的Bug。通过动画事件更改动画途中操作地图修复了这个Bug。
7.创建机枪手和机枪的AC
8.制作动画,机枪开枪
9.放置沙袋
10.安装了机枪手套件和动画,现在当玩家进入警戒区,会触发开火动画
2021-08-31 02:15:19 +08:00

58 lines
1.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MachineGunner : MonoBehaviour
{
//机枪手类,控制检测前方一片区域的敌人
// Start is called before the first frame update
private bool hasBeHit = false;//是否已被打中
private Animator person;
private Animator gun;//声明两个部件的动画组件
void Start()
{
person = transform.Find("敌人").GetComponent<Animator>();
gun = transform.Find("机枪").GetComponent<Animator>();//找到两个部件的动画组件
}
// Update is called once per frame
void Update()
{
}
//触发器是敌人的前方监测区域,当玩家进入检测区域,机枪手进入射击状态,目前用变红表示
void OnTriggerEnter2D(Collider2D other)
{
if(other.tag == "Player" && !hasBeHit)//同时需要满足未被击中这个条件
{
//GetComponent<SpriteRenderer>().color = Color.red;
//播放开火动画
person.SetBool("IsFiring",true);
gun.SetBool("IsFiring",true);
}
}
//当玩家退出检测区域,停止射击状态,变为通常状态,现在用白色表示
void OnTriggerExit2D(Collider2D other)
{
if(other.tag == "Player")
{
//GetComponent<SpriteRenderer>().color = Color.white;
//关闭开火动画
person.SetBool("IsFiring",false);
gun.SetBool("IsFiring",false);
}
}
//碰撞体是机枪手自身的碰撞体,如果被投掷物砸中,则陷入昏迷状态,目前用绿色表示
void OnCollisionEnter2D(Collision2D other)
{
if(other.gameObject.tag == "投掷物")
{
hasBeHit = true;//标记自身已被击中
GetComponent<SpriteRenderer>().color = Color.green;
}
}
}