void ataque() { if (timeForm != temTimer && timeForm % 2 == 0) { for (int i = 0; i < players.Count; i++) { PlayerController player = (PlayerController)players[i]; if (player) { Vector3 rel = player.transform.position; Vector3 pos = transform.position; Vector3 heading = rel - pos; float distance = heading.magnitude; Vector3 direction = player.transform.position - pos; // This is now the normalized direction. direction = direction.normalized; temTimer = timeForm; Vector3 initVector = new Vector3(transform.position.x, transform.position.y + 1, transform.position.z); Transform balaTrasnform = Instantiate(balaPrefact, initVector, Quaternion.identity); BalaController b = balaTrasnform.GetComponentInChildren <BalaController>(); b.myEnemy = this; b.typePlayer = "Enemigo"; b.refVector = direction; b.isRefVector = true; } } } }
// Update is called once per frame void Update() { if (players.Count < 2) { GameObject[] gameObjectsPlayers = GameObject.FindGameObjectsWithTag("Player"); if (gameObjectsPlayers.Length >= 2) { foreach (var gameObjectPlayer in gameObjectsPlayers) { PlayerController player = gameObjectPlayer.GetComponent <PlayerController>(); players.Add(player); } } } if (power != 0) { timer -= (Time.deltaTime); int timeForm = (int)(timer); if (timeForm != temTimer) { temTimer = timeForm; if (power > 0) { power -= 10; } else if (power < 0) { power += 10; } } } if (Input.GetKeyDown(up) && isGrounded) { jump = true; isJumped = true; } if (Input.GetKeyDown(kdisparo)) { if (isDisparo == false) { Vector3 initVector = new Vector3(transform.position.x, transform.position.y, transform.position.z); float dist = 2F; switch (vista) { case 1: initVector = new Vector3(transform.position.x, transform.position.y - dist, transform.position.z); break; case 2: initVector = new Vector3(transform.position.x, transform.position.y + dist, transform.position.z); break; case 3: initVector = new Vector3(transform.position.x - dist, transform.position.y, transform.position.z); break; case 4: initVector = new Vector3(transform.position.x + dist, transform.position.y, transform.position.z); break; } Transform balaTrasnform = Instantiate(prefactBala, initVector, Quaternion.identity); BalaController b = balaTrasnform.GetComponentInChildren <BalaController>(); b.myPlayer = this; if (power > 0) { b.meshRenderer.material = b.balaAzul; power -= 20; } else { b.meshRenderer.material = b.balaRoja; power += 20; } b.typePlayer = "Player"; switch (vista) { case 1: b.up = true; break; case 2: b.down = true; break; case 3: b.left = true; break; case 4: b.right = true; break; } isDisparo = true; StartCoroutine(DisparoYa()); } } if (Mathf.Abs(power) > 200) { if (power > 0) { power = 200; } else { power = -200; } } if (Input.GetKeyDown(KeyCode.Space) && isRepulsion) { keySpace = true; } if (Input.GetKeyDown(left)) { moveLeft = true; } if (Input.GetKeyDown(right)) { moveRight = true; } if (Input.GetKeyUp(left)) { moveLeft = false; } if (Input.GetKeyUp(right)) { moveRight = false; } luz.intensity = map(Mathf.Abs(this.power), 0, 200, minLuz, maxLuz); luz.range = map(Mathf.Abs(this.power), 0, 200, 10, 15) / 0.4f; if (power > 0) { luz.color = new Color(0, 0, 1, 0.3f); } else { luz.color = new Color(1, 0, 0, 0.3f); } // anim.SetFloat("Speed", Mathf.Abs(rb.velocity.x)); anim.SetBool("Grounded", isGrounded); anim.SetBool("Move", (moveLeft || moveRight)); anim.SetBool("Disparo", isDisparo); anim.SetBool("Gano", gano); //anim.SetBool("Perdio", perdio); }