// Methods public void CalculatePass() { if (oPassState != passState.NONE) { return; } oPassState = passState.SETUP; if (from && target && ball) { velocityPass = this.ball.passSpeed; this.magnitude = calculateMagnitude(from.transform.position, target.transform.position); //directionFromToTarget(); calculateRelativePosition(); calculateRelativeDirection(); #if UNITY_EDITOR && DEBUG { int index = (from.Team == Game.instance.southTeam ? 0 : 1); Game.instance.logTeam[index].WriteLine("Pass State : " + oPassState); Game.instance.logTeam[index].WriteLine("velocity Pass : "******"magnitude Pass before relative Position: " + magnitude); Game.instance.logTeam[index].WriteLine("relative Position before validity check : " + relativePosition); Game.instance.logTeam[index].WriteLine("relative Direction before validity check : " + relativeDirection); } #endif if (!passValidity()) { //CorrectTrajectory(); CorrectPosition(); calculateRelativeDirection(); #if UNITY_EDITOR && DEBUG int index = (from.Team == Game.instance.southTeam ? 0 : 1); Game.instance.logTeam[index].WriteLine("relative Position after validity check : " + relativePosition); Game.instance.logTeam[index].WriteLine("relative Direction after validity check : " + relativeDirection); #endif } multiplyRelativeDirection(); #if DEBUG Debug.DrawRay(relativePosition, new Vector3(-1f, relativePosition.y, 0), Color.yellow, 100f); Debug.DrawRay(relativePosition, new Vector3(1f, relativePosition.y, 0), Color.yellow, 100f); Debug.DrawRay(relativePosition, new Vector3(0f, relativePosition.y, 1f), Color.yellow, 100f); Debug.DrawRay(relativePosition, new Vector3(0f, relativePosition.y, -1f), Color.yellow, 100f); #endif ball.AttachToRoot(); //ball.rigidbody.isKinematic = false; //ball.rigidbody.useGravity = false; ball.Owner = null; this.magnitude = calculateMagnitude(from.transform.position, relativePosition); angle = Mathf.Deg2Rad * 25.0f; target.Order = Order.OrderMove(relativePosition); #if UNITY_EDITOR && DEBUG { int index = (from.Team == Game.instance.southTeam ? 0 : 1); Game.instance.logTeam[index].WriteLine("magnitude Pass after relative Position : " + magnitude); Game.instance.logTeam[index].WriteLine("angle Impulsion Pass : "******"order target : " + target.Order.point); } #endif } }
// Methods public void CalculatePass() { if (oPassState != passState.NONE) { return; } oPassState = passState.SETUP; if (from && target && ball) { velocityPass = this.ball.passSpeed; this.magnitude = calculateMagnitude(from.transform.position, target.transform.position); //directionFromToTarget(); calculateRelativePosition(); calculateRelativeDirection(); #if UNITY_EDITOR && DEBUG { int index = (from.Team == Game.instance.southTeam ? 0 : 1); Game.instance.logTeam[index].WriteLine("Pass State : " + oPassState); Game.instance.logTeam[index].WriteLine("velocity Pass : "******"magnitude Pass before relative Position: " + magnitude); Game.instance.logTeam[index].WriteLine("relative Position before validity check : " + relativePosition); Game.instance.logTeam[index].WriteLine("relative Direction before validity check : " + relativeDirection); } #endif if (!passValidity()) { //CorrectTrajectory(); CorrectPosition(); calculateRelativeDirection(); #if UNITY_EDITOR && DEBUG int index = (from.Team == Game.instance.southTeam ? 0 : 1); Game.instance.logTeam[index].WriteLine("relative Position after validity check : " + relativePosition); Game.instance.logTeam[index].WriteLine("relative Direction after validity check : " + relativeDirection); #endif } multiplyRelativeDirection(); #if DEBUG Debug.DrawRay(relativePosition, new Vector3(-1f, relativePosition.y, 0), Color.yellow, 100f); Debug.DrawRay(relativePosition, new Vector3(1f, relativePosition.y, 0), Color.yellow, 100f); Debug.DrawRay(relativePosition, new Vector3(0f, relativePosition.y, 1f), Color.yellow, 100f); Debug.DrawRay(relativePosition, new Vector3(0f, relativePosition.y, -1f), Color.yellow, 100f); #endif ball.AttachToRoot(); //ball.rigidbody.isKinematic = false; //ball.rigidbody.useGravity = false; ball.Owner = null; this.magnitude = calculateMagnitude(from.transform.position, relativePosition); angle = Mathf.Deg2Rad * 25.0f; target.Order = Order.OrderMove(relativePosition); #if UNITY_EDITOR && DEBUG { int index = (from.Team == Game.instance.southTeam ? 0 : 1); Game.instance.logTeam[index].WriteLine("magnitude Pass after relative Position : " + magnitude); Game.instance.logTeam[index].WriteLine("angle Impulsion Pass : "******"order target : " + target.Order.point); } #endif } }