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