//OLD DEFENSE /* * private void OnTriggerEnter(Collider other) * { * Debug.Log("collision?"); * if (other.gameObject.tag == "lowCover") * { * Debug.Log("wall collision"); * Vector3 targetDir = (other.transform.position - transform.position).normalized; * float angle = Vector3.Angle(targetDir, Vector3.forward); * Vector3 cross = Vector3.Cross(targetDir, Vector3.forward); * Debug.Log(cross.y); * if (cross.y < 0 || cross.y > 0.99) * angle = -angle; * //float angle = Mathf.Atan2(localTarget.x, localTarget.z) * Mathf.Rad2Deg * * Debug.DrawRay(transform.position, targetDir, Color.white, 2, false); * * Debug.Log("Angle: " + angle); * * if (angle <= 45 && angle >= -45) * { * Debug.Log("north"); * defenseNorth++; * } * else if (angle >= 45 && angle <= 135) * { * Debug.Log("east"); * defenseEast++; * } * else if (angle >= 135 && angle <= 180 || angle <= -135 && angle >= -180) * { * Debug.Log("south"); * defenseSouth++; * } * else if (angle >= -135 && angle <= -45) * { * Debug.Log("west"); * defenseWest++; * } * } * } * * private void OnTriggerExit(Collider other) * { * Debug.Log("collision?"); * if (other.gameObject.tag == "lowCover") * { * Debug.Log("wall collision"); * Vector3 targetDir = (other.transform.position - transform.position).normalized; * float angle = Vector3.Angle(targetDir, Vector3.forward); * Vector3 cross = Vector3.Cross(targetDir, Vector3.forward); * Debug.Log(cross.y); * if (cross.y < 0 || cross.y > 0.99) * angle = -angle; * //float angle = Mathf.Atan2(localTarget.x, localTarget.z) * Mathf.Rad2Deg * * Debug.DrawRay(transform.position, targetDir, Color.black, 2, false); * * Debug.Log("Angle: " + angle); * * if (angle <= 45 && angle >= -45) * { * Debug.Log("north"); * defenseNorth--; * } * else if (angle >= 45 && angle <= 135) * { * Debug.Log("east"); * defenseEast--; * } * else if (angle >= 135 && angle <= 180 || angle <= -135 && angle >= -180) * { * Debug.Log("south"); * defenseSouth--; * } * else if (angle >= -135 && angle <= -45) * { * Debug.Log("west"); * defenseWest--; * } * } * } */ /* * private void OnTriggerEnter(Collider other) * { * //Calculate defense * if (other.gameObject.tag == "Tile") * { * Tile currentTile = other.gameObject.GetComponent<Tile>(); * * Debug.Log(other.gameObject.name); * * defenseNorth = currentTile.northCover; * defenseSouth = currentTile.southCover; * defenseEast = currentTile.eastCover; * defenseWest = currentTile.westCover; * } * } */ public void move() { audioSource.PlayOneShot(footsteps, 0.7f); isMoving = true; anim.SetBool("isRunning", true); Vector3 targetTile; Vector3 randomDirection = Random.insideUnitSphere * movement1; //Debug.Log(randomDirection); randomDirection += transform.position; //Debug.Log(randomDirection); targetTile = gameManager.PickTile(randomDirection); NavMeshHit hit; NavMesh.SamplePosition(targetTile, out hit, movement1, 1); Vector3 finalPosition = hit.position; GetComponent <NavMeshAgent>().destination = finalPosition; //yield return new WaitForSeconds(5); //actionCount--; }