// 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); } }
// 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; } }