void Update() { //Actualizamos la posicion del Gizmo (para que pueda apuntar segun la direccion del jugador) if (playerScpript.movimiento != Vector2.zero) { Point.transform.position = new Vector3(playerScpript.transform.position.x + playerScpript.movimiento.x / 2, playerScpript.transform.position.y + playerScpript.movimiento.y / 2, 0); } //Configuracion del Ataque Especial. if (Input.GetKeyDown(KeyCode.LeftAlt)) { Combat_Anim.SetTrigger("Charge"); PS_Aura.ParticleStart(); //Enviamos "false" al metodo P_Mov para que el personaje no se pueda mover mientras carga el ataque. playerScpript.P_Mov(true); } else if (Input.GetKeyUp(KeyCode.LeftAlt)) { //Ahora conseguiremos el angulo del personaje a través del vector Combat_Anim.SetTrigger("Attack"); if (PS_Aura.IsLoaded()) { float Angle = Mathf.Atan2( Combat_Anim.GetFloat("MovY"), Combat_Anim.GetFloat("MovX")) * Mathf.Rad2Deg; //El mathf.rad2deg sirve para convertir los vectores en angulos. GameObject SpecialShoot_Object = Instantiate(PS_Slash, Point.transform.position, Quaternion.AngleAxis(Angle, Vector3.forward)); // Movimiento inicial del Poder PowerShoot Slash = SpecialShoot_Object.GetComponent <PowerShoot>(); Slash.PS_Mov.x = Combat_Anim.GetFloat("MovX"); Slash.PS_Mov.y = Combat_Anim.GetFloat("MovY"); } PS_Aura.ParticleStop(); //Configuramos la espera del player para que se pueda mover despues de tirar la habilidad. StartCoroutine(EnableMovementAfterAttack(0.5f)); } // LLamamos al metodo Ataque cada vez que este disponible el "CD de Ataque" if (Time.time >= NextAttackTime) { if (Input.GetKeyDown(KeyCode.Space)) { Attack(); NextAttackTime = Time.time + 1f / AttackRate; } } }
void Update() { //Aktualizacja gizmo if (playerScpript.movimiento != Vector2.zero) { Point.transform.position = new Vector3(playerScpript.transform.position.x + playerScpript.movimiento.x / 2, playerScpript.transform.position.y + playerScpript.movimiento.y / 2, 0); } //Specjalna konfiguracja ataku if (Input.GetKeyDown(KeyCode.LeftAlt)) { Combat_Anim.SetTrigger("Charge"); PS_Aura.ParticleStart(); //Nie można sie poruszać podczas ataku playerScpript.P_Mov(true); } else if (Input.GetKeyUp(KeyCode.LeftAlt)) { Combat_Anim.SetTrigger("Attack"); if (PS_Aura.IsLoaded()) { float Angle = Mathf.Atan2( Combat_Anim.GetFloat("MovY"), Combat_Anim.GetFloat("MovX")) * Mathf.Rad2Deg; //Służy do konwersji wektorów na kąty GameObject SpecialShoot_Object = Instantiate(PS_Slash, Point.transform.position, Quaternion.AngleAxis(Angle, Vector3.forward)); PowerShoot Slash = SpecialShoot_Object.GetComponent <PowerShoot>(); Slash.PS_Mov.x = Combat_Anim.GetFloat("MovX"); Slash.PS_Mov.y = Combat_Anim.GetFloat("MovY"); } PS_Aura.ParticleStop(); StartCoroutine(EnableMovementAfterAttack(0.5f)); } if (Time.time >= NextAttackTime) { if (Input.GetKeyDown(KeyCode.Space)) { Attack(); NextAttackTime = Time.time + 1f / AttackRate; } } }