Roman 6c935a7d3f 任务:替换现有美术素材和动画、完善游戏的流程化
*:合并了SAIPOVersion
场景【第二关】
1.放置巡逻类敌人
*制作AC【巡逻敌人】
2.完善巡逻类敌人,具有以下特性:
(1.普通巡逻时,执行走路动画
(2.监测到玩家时,执行开枪动画
(3.给动画添加事件,开枪瞬间播放玩家死亡动画
(4.当听到石头声音,执行听见动画
(5.结束后让敌人冲向石头落地处
(6.到达石头落地处后,执行检查动画
(7.检查动画结束后,返回步行状态继续巡逻
3.布置了投掷物堆
4.布置了挡板,具有以下特性:
(1.当玩家位于挡板后,标记自身被遮挡,不会被敌人发现
(2.当玩家离开挡板后,标记自身未被遮挡,会被敌人发现
(3.修改敌人逻辑,当发现挡板后的玩家,无事发生,而当发现无遮挡的玩家,执行开枪和玩家死亡动画
5.解决了玩家转身后无法投掷的问题
6.放置了两个敌人
7.放置了两个挡板
8.布置营地
9.给桌子加上修理电报机系统
10.替换修理电报机界面UI美术素材
11.提高了修理台的转速
2021-09-03 16:03:44 +08:00

48 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Missile : MonoBehaviour
{
//投掷物类,用来控制投掷物
// Start is called before the first frame update
[SerializeField]
private bool amINoisy = false;//记录自己是否落地发出声音的变量
private bool amIBeenChecked = false;//记录自己是否已经被敌人检查过
private Rigidbody2D m_rigidbody;
void Start()
{
m_rigidbody = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
//使得自身旋转角度匹配速度,像一支箭矢
if(m_rigidbody != null)
{
float angle = Vector2.Angle(m_rigidbody.velocity,Vector2.right);
if(m_rigidbody.velocity.y > 0) m_rigidbody.SetRotation(angle);
else m_rigidbody.SetRotation(-angle);
}
}
void OnCollisionEnter2D(Collision2D other)
{
if(other.gameObject.tag == "地面")
{
//当投掷物砸到地面,发出一个响声(逻辑上),标记自身为声源
amINoisy = true;
//同时,摧毁自身的刚体组件,阻止其滚动
Destroy(GetComponent<Rigidbody2D>());
//再摧毁自身碰撞体
//Destroy(GetComponent<CapsuleCollider2D>());
GetComponent<CapsuleCollider2D>().isTrigger = true;
}
}
public bool AMINoisy(){return amINoisy;}
public bool AmIBeenChecked(){return amIBeenChecked;}
public void YouAreChecked(){amIBeenChecked = true;}
}