SAIMA/Assets//脚本/FireController.cs
Roman 9559cc8882 短学期Log
任务:替换和实装美术素材
1.在教程场景布置图标和文字提示内容
DONE
2.制作GamePlay中背景元素的动画并实装
DONE
3.替换拆迁障碍物美术素材
DONE

任务:实装音乐和音效
1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。
DONE
2.实装人摔地音效
DONE
3.实装人跑动音效
效果不好
DONE
4.实装人马分离音效
DONE
*.补充实装人降落到马上的音效
DONE
5.实装创烂障碍物音效
DONE
6.实装圣火点燃音效
DONE
7.实装马磕磕碰碰音效
DONE
8.实装马似音效
DONE
9.实装马着地音效
DONE
10.实装马起跳音效
DONE
11.实装马蹄点地音效
效果不好
DONE

任务:实装特效
1.实装后处理
DONE
2.实装日夜更替
DONE
3.实装树叶飘落
DONE
4.实装圣火粒子
效果不好
DONE
5.实装破碎灰尘
效果不好
DONE
6.实装马蹄灰尘
DONE
7.实装红黑闪特效
DONE

任务:完善没写的零散逻辑
1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马
**:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修
已修复
DONE

2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑
DONE

3.开发GamePlay距离记录和重开系统
DONE

4.策划要在点燃圣火时镜头放大,体现标题感
URP相机不太好做
ABANDON

5.人的死亡动画逻辑之前没做
DONE

任务:测试并修复Bug
DONE

修复Bug
1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。
已修复
DONE
2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。
DONE
3.跑步动画和跑步音效完全对不上
加快跑步动画
DONE
4.原爆破给力范围太大,会导致旧的碎片也被波及
已修复
DONE
2022-08-27 19:22:38 +08:00

60 lines
2.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using DG.Tweening;
/// <summary>
/// 圣火点燃开始游戏的流程管理
/// </summary>
public class FireController : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other) {
if(other.TryGetComponent<Person>(out var person)) {
//当人进入点燃圣火触发器
StartCoroutine(LightFireCoroutine());
}
}
public Transform target;
private IEnumerator LightFireCoroutine(){
//把马的刚体速度建为0
FindObjectOfType<Horse>().GetComponent<Rigidbody2D>().velocity = Vector2.zero;
//切断输入
Player.Instance.ToNullMap();
//渐渐显示火把
SpriteRenderer fire = GameObject.Find("火炬(不可改名)").GetComponent<SpriteRenderer>();
fire.DOFade(1,2);
yield return new WaitForSeconds(2);
//此时人手中火炬显示
//点燃引线
GameObject fireLine = GameObject.Find("Scene").transform.Find("燃烧的引线").gameObject;
fireLine.SetActive(true);
fireLine.GetComponent<ParticleSystem>().Play();
//播放音效
GetComponent<AudioSource>().Play();
//等待一段时间
yield return new WaitForSeconds(1.5f);
//渐显播放标题动画
SpriteRenderer title = GameObject.Find("标题").GetComponent<SpriteRenderer>();
title.DOFade(1,2);
yield return new WaitForSeconds(2);
//播放圣火粒子
transform.Find("圣火粒子").GetComponent<ParticleSystem>().Play();
//此时圣火已点燃,标题已显示
//等待一秒后,开始转场
yield return new WaitForSeconds(1);
//呼出黑块从右向左的动画
BlackController.Instance.Trans();
//直到黑幕全黑
yield return new WaitUntil(() => {return BlackController.Instance.AllBlack;});
//开始跳转到下一个场景
SceneManager.LoadScene("0813中期提交");
//切换BGM
MusicController.Instance.To(MusicController.Instance.game);
}
}