private IEnumerator DragonSkill() { GameObject breathObject = MonoBehaviour.Instantiate(dragonBreathPrefab) as GameObject; DragonSkillModel skillModel = new DragonSkillModel(); skillModel.appreanceFrame = defaultSkillInfo.m_sSkillBullet.dragonSkill.eachDuration; skillModel.gapFrame = defaultSkillInfo.m_sSkillBullet.dragonSkill.gapDuration; skillModel.isRight = moveScript.IsRight(); skillModel.sheetingFrame = defaultSkillInfo.m_sSkillBullet.dragonSkill.eachDuration; skillModel.sheetingSprite = dragonLaserSprite; skillModel.sheetingSpriteStart = dragonSparkSprite; skillModel.stretchXMax = defaultSkillInfo.m_sSkillBullet.dragonSkill.laserXArea; skillModel.stretchXMin = defaultSkillInfo.m_sSkillBullet.dragonSkill.sparkXArea; skillModel.targetArray = new ArrayList(); skillModel.targetArray.Add(GlobalLayerMask.ENEMY_MASK);; float offsetValue = breathObject.GetComponent <CapsuleCollider2D>().size.x / 2 * breathObject.transform.localScale.x; float charSizeX = moveScript.GetCurrentSize().x; breathObject.transform.position = new Vector3( moveScript.GetCurrentPostion().x + (moveScript.IsRight()? offsetValue : -offsetValue) + charSizeX, moveScript.GetCurrentPostion().y, moveScript.GetCurrentPostion().z); breathObject.transform.localScale = new Vector3(moveScript.IsRight() ? 1 : -1, 1, 1); BreathScript breathScript = breathObject.GetComponent <BreathScript>(); breathScript.SetParameter(skillModel); yield return(new WaitUntil(() => breathScript.EndSkill() == true)); Destroy(breathObject); moveScript.ReleaseInvincibility(); moveScript.ReleaseHold(); duringSkill = false; }
public void SetParameter(DragonSkillModel _argModel) { skillModel = _argModel; currentStat = BREATH_STATUS.SHEETITING_START; }