using System.Collections; using System.Collections.Generic; using UnityEngine; using Cinemachine; using Sirenix.OdinInspector; using Fungus; /// /// 演出,贵族之怒 /// 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(); } protected override IEnumerator Main(){ yield return new WaitForEndOfFrame(); //让玩家停下来 player.inputDir = 0; //让怪物停下来 enemy.GetComponent().constraints = RigidbodyConstraints2D.FreezeAll; //镜头指向贵族 m_Camera.Follow = noble; yield return new WaitForSeconds(1f); //执行贵族踢人动画 noble.GetComponent().SetBool("isKick",true); //执行宗教小怪的死亡动画 enemy.GetComponent().constraints = RigidbodyConstraints2D.None; enemy.OnBeHit(MyPlayer.AtkMethod.反弹炸弹,-1); yield return new WaitForSeconds(2f); noble.GetComponent().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;} }