SAIPO ca4294b0bf 1.完善了对话内容,使对话内容更加口语化和方言化。
2.添加了Shader的框架(与屏幕后特效相关)
 1)加入了LightController的代码文件,主要控制烛光等灯光的空气扰动现象
 2)加入了VolumeController的代码文件,主要与屏幕后特效的控制变量相关
 3)在场景中加入了Volume的对象,控制屏幕后特效Shader的运行
3.挪动了场景中煤油灯的位置,并且为煤油灯添加了会产生空气扰动使光范围发生变化的功能
4.为测试场景中的镜子添加了临时提示光边Shader
2021-08-14 07:43:34 +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;
}
}
}