Roman 1e887f13a6 任务:搭建第一关的框架
场景【第一关】
1.布置投掷物堆
2.完善投掷系统,使得投掷完一次后退出投掷状态,需要重新在堆里拾取
3.安排了两个地雷
4.给投掷状态安排了一个退出功能,如果你和投掷物堆互动了,但是突然不想丢了,可以按K或者手柄B键退出投掷状态。需要状态动画。
5.设计固定的敌人,使其可以监测前方一片区域,当区域中有玩家,进入射击状态。
6.保存【机枪手】为预制体,目前,若玩家进入监测区,则变红,被击中后变绿,且不再变红。

下班。目前面对机枪手,视野非常受限,明天我会研究cinemamachine的用法。我明天将完成第一关的搭建。只剩8天了……加油吧。🙏
2021-08-19 01:13:01 +08:00

49 lines
1.4 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;//是否已被打中
void Start()
{
}
// Update is called once per frame
void Update()
{
}
//触发器是敌人的前方监测区域,当玩家进入检测区域,机枪手进入射击状态,目前用变红表示
void OnTriggerEnter2D(Collider2D other)
{
if(other.tag == "Player" && !hasBeHit)//同时需要满足未被击中这个条件
{
GetComponent<SpriteRenderer>().color = Color.red;
}
}
//当玩家退出检测区域,停止射击状态,变为通常状态,现在用白色表示
void OnTriggerExit2D(Collider2D other)
{
if(other.tag == "Player")
{
GetComponent<SpriteRenderer>().color = Color.white;
}
}
//碰撞体是机枪手自身的碰撞体,如果被投掷物砸中,则陷入昏迷状态,目前用绿色表示
void OnCollisionEnter2D(Collision2D other)
{
if(other.gameObject.tag == "投掷物")
{
hasBeHit = true;//标记自身已被击中
GetComponent<SpriteRenderer>().color = Color.green;
}
}
}