// Use this for initialization void Start() { //Arrow Blank Start HeroArrow.SetActive(false); ArrowFull.SetActive(false); ArrowDull.SetActive(false); HeroSelectionFull.SetActive(false); HeroSelectionDull.SetActive(false); //Movement Baselines Vector3 translateSpot = MainCamera.camera.WorldToScreenPoint(Self.transform.position); startSpot = new Vector2(translateSpot.x, translateSpot.y); float distance = (startSpot.y / screenFraction); stableDistance = distance; //Gravity Modification Physics.gravity = new Vector3(0, -60, 0); }
// Update is called once per frame void Update() { //Hero State Change if (heroStateChanged) { heroStateChange(); } //Hero State Changed //Hero Render Rotate HeroRenderDirector.transform.position = new Vector3((Self.transform.position.x + Self.rigidbody.velocity.x), Self.transform.position.y, (Self.transform.position.z + Self.rigidbody.velocity.z)); HeroRender.transform.LookAt(HeroRenderDirector.transform.position); //Hero Render Rotated //Stable Range Check + Position Update Vector3 translateSpot = MainCamera.camera.WorldToScreenPoint(HeroRender.transform.position); startSpot = new Vector2(translateSpot.x, translateSpot.y); currentDistance = Vector2.Distance(startSpot, Input.mousePosition); if (currentDistance < stableDistance) { withinStableRange = true; //print ("Hero Selected"); heroSelected = true; } else { withinStableRange = false; //print ("Hero Unselected"); heroSelected = false; } //Stable Range Checked + Position Updated //Hero Selection if (heroSelected) { HeroSelectionFull.transform.LookAt(MainCamera.transform.position); HeroSelectionDull.transform.LookAt(MainCamera.transform.position); if (canShift) { HeroSelectionFull.SetActive(true); HeroSelectionDull.SetActive(false); } if (!canShift) { HeroSelectionDull.SetActive(true); HeroSelectionFull.SetActive(false); } } else if (!heroSelected) { HeroSelectionDull.SetActive(false); HeroSelectionFull.SetActive(false); } //Hero Selected //Launch if (Input.GetMouseButtonDown(0) && !shiftStarted && withinStableRange) { shiftStarted = true; } if (shiftStarted) { HeroArrow.SetActive(true); PredictLaunch(); } if (canShift) { if (Input.GetMouseButtonUp(0) && shiftStarted) { if (withinStableRange) { Self.rigidbody.velocity = new Vector3(0, 0, 0); shiftStarted = false; } else { endSpot = new Vector2(Input.mousePosition.x, Input.mousePosition.y); ShiftVelocity(); shiftStarted = false; //Stamina Recovery Adjustment staminaRecovering = true; sRecoveryTime = Time.fixedTime; } HeroArrow.SetActive(false); } } if (Input.GetMouseButtonUp(0) && shiftStarted) { HeroArrow.SetActive(false); shiftStarted = false; } //Launched //Handle Cooldown if (staminaRecovering) { canShift = false; if ((Time.fixedTime - sRecoveryTime) >= sRecoveryRate) { staminaRecovering = false; } } else { canShift = true; } //Cooldown Handled }