70 lines
2.2 KiB
C#
70 lines
2.2 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using Cinemachine;
|
||
|
using Sirenix.OdinInspector;
|
||
|
using Fungus;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 演出,贵族之怒
|
||
|
/// </summary>
|
||
|
public class NobleFury : Stage
|
||
|
{
|
||
|
[Header("贵族")]
|
||
|
public Transform noble;
|
||
|
[Header("宗教信徒")]
|
||
|
public NormalEnemy enemy;
|
||
|
|
||
|
private bool conversationEnd = false;
|
||
|
private bool conversationEnd1 = false;
|
||
|
private CinemachineVirtualCamera m_Camera;
|
||
|
protected override void Init(){
|
||
|
//找到必要的游戏物体和组件
|
||
|
base.Init();
|
||
|
m_Camera = FindObjectOfType<CinemachineVirtualCamera>();
|
||
|
}
|
||
|
|
||
|
protected override IEnumerator Main(){
|
||
|
yield return new WaitForEndOfFrame();
|
||
|
//让玩家停下来
|
||
|
player.inputDir = 0;
|
||
|
//让怪物停下来
|
||
|
enemy.GetComponent<Rigidbody2D>().constraints = RigidbodyConstraints2D.FreezeAll;
|
||
|
//镜头指向贵族
|
||
|
m_Camera.Follow = noble;
|
||
|
yield return new WaitForSeconds(1f);
|
||
|
//执行贵族踢人动画
|
||
|
noble.GetComponent<Animator>().SetBool("isKick",true);
|
||
|
//执行宗教小怪的死亡动画
|
||
|
enemy.GetComponent<Rigidbody2D>().constraints = RigidbodyConstraints2D.None;
|
||
|
enemy.OnBeHit(MyPlayer.AtkMethod.反弹炸弹,-1);
|
||
|
yield return new WaitForSeconds(2f);
|
||
|
noble.GetComponent<Animator>().SetBool("isKick",false);
|
||
|
//Callfungus对话
|
||
|
Flowchart.BroadcastFungusMessage("贵族之怒");
|
||
|
yield return new WaitUntil(
|
||
|
() => {
|
||
|
return conversationEnd;
|
||
|
}
|
||
|
);
|
||
|
yield return new WaitForSeconds(1f);
|
||
|
noble.localScale = new Vector3(1,1,1);
|
||
|
yield return new WaitForSeconds(1f);
|
||
|
Flowchart.BroadcastFungusMessage("贵族对话");
|
||
|
yield return new WaitUntil(
|
||
|
() => {
|
||
|
return conversationEnd1;
|
||
|
}
|
||
|
);
|
||
|
//将摄像机重新对准玩家
|
||
|
m_Camera.Follow = player.transform;
|
||
|
//执行善后工作
|
||
|
StartCoroutine(base.Main());
|
||
|
}
|
||
|
|
||
|
public void ConversationEnd(){conversationEnd = true;}
|
||
|
public void ConversationEnd1(){conversationEnd1 = true;}
|
||
|
|
||
|
|
||
|
}
|