
任务:替换和实装美术素材 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
78 lines
2.2 KiB
C#
78 lines
2.2 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
|
||
public class BreakAbleObstacle : Obstacle
|
||
{
|
||
|
||
[Header("要破坏可破坏障碍物,需要多大的水平速度")]
|
||
public float breakSpeedThreshold = 1f;
|
||
|
||
[Header("爆破碎片飞出时有多大力")]
|
||
public float breakForce = 1f;
|
||
|
||
|
||
|
||
|
||
private Explodable explodable;
|
||
private ExplosionForce explosionForce;
|
||
private AudioSource audioSource;
|
||
|
||
|
||
|
||
protected override void FindSth()
|
||
{
|
||
base.FindSth();
|
||
explodable = transform.Find("Obstacle").GetComponent<Explodable>();
|
||
explosionForce = transform.Find("Force").GetComponent<ExplosionForce>();
|
||
audioSource = GetComponent<AudioSource>();
|
||
}
|
||
|
||
void OnTriggerEnter2D(Collider2D other) {
|
||
if(other.tag == "HorseHead")
|
||
{
|
||
if(other.transform.parent.tag != "Horse")
|
||
Debug.LogWarning("用于检查可破碎障碍物的触发器捕获到了马头,但是通过马头没有找到马,很可能是马的树状结构或者tag的赋予上出了问题");
|
||
CheckHorseSpeed(other.transform.parent);
|
||
}
|
||
}
|
||
|
||
void CheckHorseSpeed(Transform horse)
|
||
{
|
||
if(horse.GetComponent<Rigidbody2D>().velocity.x > breakSpeedThreshold)
|
||
BreakObstacle(horse);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 破碎障碍物
|
||
/// </summary>
|
||
void BreakObstacle(Transform horse)
|
||
{
|
||
explodable.explode();
|
||
float force = horse.GetComponent<Horse>().footInputCharge * breakForce;
|
||
Debug.Log("Force:" + force);
|
||
explosionForce.force = force;
|
||
explosionForce.doExplosion(explosionForce.transform.position);
|
||
GetComponent<BoxCollider2D>().enabled = false;
|
||
|
||
horse.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
|
||
|
||
//
|
||
audioSource.Play();
|
||
|
||
//
|
||
transform.Find("破碎灰尘").GetComponent<ParticleSystem>().Play();
|
||
|
||
//触发红黑闪特效
|
||
GameObject flash = Camera.main.transform.Find("红黑闪").gameObject;
|
||
flash.SetActive(true);
|
||
ActionController.Instance.DelayToCall(
|
||
() => {
|
||
flash.SetActive(false);
|
||
},0.3f
|
||
);
|
||
|
||
}
|
||
}
|