/// <summary> /// 初始化特定事件发生时候的技能层 /// 或者 创建孩子技能 /// </summary> /// <param name="item">Item.</param> /// <param name="evt">Evt.</param> void InitLayout(SkillDataConfig.EventItem item, MyEvent evt) { if (item.layout != null) { var g = Instantiate(item.layout) as GameObject; g.transform.parent = transform; //陷阱粒子效果 位置是 当前missile爆炸的位置 //瞬间调整SkillLayout的方向为 攻击者的正方向 g.transform.localPosition = InitPos; float y; if (forwardSet) { y = Quaternion.LookRotation(forwardDir).eulerAngles.y; } else { y = attacker.transform.localRotation.eulerAngles.y; } g.transform.localRotation = Quaternion.Euler(new Vector3(0, y, 0)); g.transform.localScale = Vector3.one; var runner = g.AddComponent <SkillLayoutRunner>(); runner.stateMachine = this; runner.Event = item; runner.triggerEvent = evt; allRunners.Add(g); Log.AI("SkillLayout " + item.layout.name); } else if (item.childSkillId != 0 && item.childSkillId != -1) { Log.AI("Create Child Skill " + item.childSkillId); SkillLogic.CreateSkillStateMachine(attacker, Util.GetSkillData(item.childSkillId, 1), evt.missile.position); } }
IEnumerator DelayShowBullet(SkillDataConfig.EventItem item) { yield return(new WaitForSeconds(0.4f)); InitLayout(item, null); }