private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name == "Player") { BallistaPrefab.Shoot(); } }
void ManageTouches() { #if UNITY_STANDALONE_WIN if (Input.GetMouseButtonDown(0)) { // Checks if the shoot area has been touched hasTouchedShootArea = IsOnShootTouchArea(GetCurrentMousePos()); // Checks if the ability area has been touched hasTouchedAbilityArea = IsOnAbilityTouchArea(GetCurrentMousePos()); if (hasTouchedAbilityArea) { if (ballista.lastBall != null) { ballista.lastBall.UseAbilityOnTouch(); } } isMouseDown = true; initialTouchPos = GetCurrentMousePos(); EnableLine(true); } #endif #if UNITY_ANDROID || UNITY_IOS if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); if (touch.phase == TouchPhase.Began) { // Checks if the shoot area has been touched hasTouchedShootArea = IsOnShootTouchArea(GetCurrentTouchPos()); // Checks if the ability area has been touched hasTouchedAbilityArea = IsOnAbilityTouchArea(GetCurrentTouchPos()); if (hasTouchedAbilityArea) { if (ballista.lastBall != null) { ballista.lastBall.UseAbilityOnTouch(GetCurrentTouchPos()); } } isMouseDown = true; initialTouchPos = GetCurrentTouchPos(); EnableLine(true); } } #endif if (isMouseDown) { #if UNITY_ANDROID || UNITY_IOS currentTouchPos = GetCurrentTouchPos(); #endif #if UNITY_STANDALONE_WIN currentTouchPos = GetCurrentMousePos(); #endif /** * Abilities */ if (hasTouchedAbilityArea) { if (ballista.lastBall != null) { ballista.lastBall.UseAbilityOnHold(GetCurrentTouchPos()); } } /** * Shooting */ if (hasTouchedShootArea) { EnableLengthPercentageText(true); currentForcePercentage = MyCalculator.CalcuateForcePercentage(initialTouchPos, currentTouchPos, maxDrawLength); ballista.Aim(MyCalculator.CalculateAngle(initialTouchPos, currentTouchPos, ballista.flightGroove.transform.position)); // CalculateLength(); PrepareProjectileArc(); } DrawLine(); } #if UNITY_STANDALONE_WIN if (Input.GetMouseButtonUp(0)) { isMouseDown = false; /// <summary> /// Abilities /// </summary> if (hasTouchedAbilityArea) { if (ballista.lastBall != null) { ballista.lastBall.UseAbilityOnRelease(); } } /// <summary> /// Shooting /// </summary> if (hasTouchedShootArea) { ballista.Shoot(currentDrawLength / maxDrawLength); EnableLengthPercentageText(false); } } #endif #if UNITY_ANDROID || UNITY_IOS if (Input.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Ended) { isMouseDown = false; /** * Abilities */ if (hasTouchedAbilityArea) { if (ballista.lastBall != null) { ballista.lastBall.UseAbilityOnRelease(); } } /** * Shooting */ if (hasTouchedShootArea) { ballista.Shoot(currentForcePercentage); EnableLengthPercentageText(false); } EnableLine(false); } } #endif }