コード例 #1
0
    private IEnumerator skill1()//Warp
    {
        bool distanceCheck = (thisObjectScript.GetShortestDistance() < skillDistance[0] &&
                              thisObjectScript.GetAttackDistance() < thisObjectScript.GetShortestDistance());


        if ((shortestScript != null) && canUseSkill[0] && distanceCheck)
        {
            thisObjectScript.GetAudi().clip = skillSound[0];
            thisObjectScript.GetAudi().Play();

            skillUsed      = true;
            canUseSkill[0] = false;

            if (!thisObjectScript.GetIsDead())
            {
                anim.Play("strongest1Warp");
            }

            thisObjectScript.AttackedCheck(skiilDelay[0]); // 재사용 대기시간이 빠른 스킬이 있을 땐 빼줘야 하는 코드
                                                           // 재사용 대기시간이 빠른 스킬이 실행중일 때 다른 공격이 실행되지 않길
                                                           // 원하면 이 코드를 실행시키되, 위에 조건문에 !thisObjectScript.GetAttackedCheck();를 추가하자

            GameObject a = Instantiate(particle, (transform.position + shortestScript.transform.position) / 2, Quaternion.Euler(0f, 180f, 0f));
            a.transform.SetParent(null);

            yield return(new WaitForSeconds(skiilDelay[0]));

            skillUsed = false;
            StartCoroutine(skill1Re());
            try
            {
                Vector2 targetPosition = shortestScript.transform.localPosition;
                targetPosition.x       += thisObjectScript.GetAttackDistance();
                transform.localPosition = targetPosition;//스킬 사용
            }
            catch (MissingReferenceException)
            {
                Destroy(a);
            }

            Destroy(a);
        }
    }