コード例 #1
0
    // Update is called once per frame
    void LateUpdate()
    {
        // If can't attack at all, return.
        if (!charControlScript.canAttack())
        {
            return;
        }

        // When clicking and can perform magic -> Aim.
        if (Input.GetMouseButton(0) && !isCastingPositionFrozen())
        {
            pointAtCursor();
            if (!performingMagic && canPerformMagic() && magicControlUIScript.hasEnoughMP(magicControlUIScript.fireballCost))
            {
                castingScript.setLayerOrder(castingLayerOrder);
                castingScript.showCast(0);
                soundScript.playCasting();
                performingMagic = true;
            }
        }
        // When click is released and magic is to be produced.
        else if (Input.GetMouseButtonUp(0) && canPerformMagic() && magicControlUIScript.hasEnoughMP(magicControlUIScript.fireballCost))
        {
            soundScript.stopSounds();
            castingScript.hideAllCast();
            castMagic();
            performingMagic = false;
        }

        if (freezeDueCasting > 0f)
        {
            freezeDueCasting -= Time.deltaTime;
            pointAt(castingTarget);
        }
    }
コード例 #2
0
    // Update is called once per frame
    void LateUpdate()
    {
        // If can't attack at all, return.
        if (!charControlScript.canAttack())
        {
            return;
        }

        if (freezeDueCasting > 0f)
        {
            freezeDueCasting -= Time.deltaTime;
            pointAt(castingTarget);
        }

        if (isAndroid())
        {
            isCastingWithTouch = false;
            foreach (Touch touch in Input.touches)
            {
                // Check we're not clicking in the jump button area or joystick covere (for mobile devices).
                if (RectTransformUtility.RectangleContainsScreenPoint(charControlScript.mobileJumpButton.GetComponent <RectTransform>(), touch.position) || RectTransformUtility.RectangleContainsScreenPoint(JoystickCover, touch.position))
                {
                    continue;
                }
                // If we get here, it means it's a touch for casting.
                isCastingWithTouch = true;
                castingTouch       = touch;
            }
        }

        if (isAndroid() && !isCastingWithTouch && !performingMagic)
        {
            return;
        }

        // When clicking and can perform magic -> Aim.
        if ((!isAndroid() && Input.GetMouseButton(0) || castingTouch.phase == TouchPhase.Moved || castingTouch.phase == TouchPhase.Stationary) && !isCastingPositionFrozen())
        {
            pointAtCursor();
            if (!performingMagic && canPerformMagic() && magicControlUIScript.hasEnoughMP(magicControlUIScript.fireballCost))
            {
                castingScript.setLayerOrder(castingLayerOrder);
                castingScript.showCast(0);
                soundScript.playCasting();
                performingMagic = true;
            }
        }
        // When click is released and magic is to be produced.
        else if ((!isAndroid() && Input.GetMouseButtonUp(0) || castingTouch.phase == TouchPhase.Ended) && canPerformMagic() && magicControlUIScript.hasEnoughMP(magicControlUIScript.fireballCost))
        {
            soundScript.stopSounds();
            castingScript.hideAllCast();
            castMagic();
            performingMagic = false;
        }
    }