Roman 9b7dbdf941 任务:搭建“序章-战场”的整体流程框架
1.创建可交互电报机这个逻辑物体
*.在所有脚本首行添加说明方便查看
2.编写假电报机类,因为这个电报机没有电报机功能,而是一个类似事件的物体。
3.使假电报机可以分清场景中电话线断裂和修复的情况,并对其做出不同反应。
4.没修完电报机的反馈等待策划,修完了的等待我明天编写场景的多态系统
5.均通过了程序简单测试,请各位尽快拉取寻找问题

下班,别摸了,兄弟们
2021-08-07 01:31:29 +08:00

75 lines
2.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BombingArea : MonoBehaviour
{
//这是轰炸区的脚本,控制轰炸区相关的所有逻辑💣
// Start is called before the first frame update
private bool bombing = false;//是否正在轰炸
public GameObject shell;//炮弹游戏物体
// [Tooltip("炮弹阴影Y轴的偏移量")]
// public float shellShadowYOffset;//炮弹阴影Y轴的偏移量因为复杂原因必须使用此变量调整阴影的Y位置
private float minimumTimeInterval;
private float maximumTimeInterval;//生成炮弹的最小和最大时间间隔
private float maxOffSetOfShell;//生成炮弹离玩家的最大偏移量
private float leftTime = 0f;
private IndexRecoder indexRecoder;
private M_Player player;
private float shellHeight;
void Start()
{
Init();
}
// Update is called once per frame
void Update()
{
if(bombing) Bomb();
}
private void Init()
{
indexRecoder = FindObjectOfType<IndexRecoder>();
minimumTimeInterval = indexRecoder.bombingAreaMinimumTimeInterval;
maximumTimeInterval = indexRecoder.bombingAreaMaximumTimeInterval;
maxOffSetOfShell = indexRecoder.bombingAreaMaxOffSetOfShell;
shellHeight = indexRecoder.bombingAreaShellHeight;
player = FindObjectOfType<M_Player>();
}
private void Bomb()
{
if(leftTime <= 0f)
{
Instantiate(shell,//生成炮弹
player.transform.position + //以玩家位置
new Vector3(Random.Range(-maxOffSetOfShell,maxOffSetOfShell),//加上水平方向的偏移量
shellHeight,0),//竖直方向给高度
Quaternion.identity);
leftTime = Random.Range(minimumTimeInterval,maximumTimeInterval);
}
else leftTime -= Time.deltaTime;
}
void OnTriggerEnter2D(Collider2D other)
{
if(other.tag == "Player")//当玩家进入轰炸区
{
bombing = true;
}
}
void OnTriggerExit2D(Collider2D other)
{
if(other.tag == "Player")//当玩家退出轰炸区
{
bombing = false;
}
}
}