// Start is called before the first frame update void Start() { projectileScriptv2 = GameObject.Find("Projectile Group").GetComponent <ProjectileScriptv2>(); obstaclesScript = GameObject.Find("Obstacles Group").GetComponent <ObstaclesScript>(); slingshotScriptv2 = GameObject.Find("Slingshot Group").GetComponent <SlingshotScriptv2>(); scoreScript = GameObject.Find("ScoreScript").GetComponent <ScoreScript>(); character = "Cat"; gameStart = false; replay = false; timeLeft = 60; }
public bool CheckObstacleCollision(FootstepPlanningState state, ObstaclesScript script) { //if (state == null || script == null) // return false; if (script.ShapeChoice.Shape == Enum.Enumeration.Sphere) { Vector3 obstaclePos = script.gameObj.transform.position; Vector3 aux = obstaclePos - state.currentPosition; float sphereRadius = script.size.x; return((aux.magnitude - sphereRadius - analyzer.GetRadius()) <= 0); } else if (script.ShapeChoice.Shape == Enum.Enumeration.Rectangle) { Bounds box = script.gameObj.collider.bounds; return(box.SqrDistance(state.currentPosition) <= analyzer.GetRadius()); } return(false); }
public bool CheckObstacleCollision(Vector3 pos, ObstaclesScript script) { //if (state == null || script == null) // return false; if (script.ShapeChoice.Shape == Enum.Enumeration.Sphere) { Vector3 obstaclePos = script.gameObj.transform.position; Vector3 aux = obstaclePos - pos; float sphereRadius = script.size.x; return((aux.magnitude - sphereRadius - agentRadius) <= 0); } else if (script.ShapeChoice.Shape == Enum.Enumeration.Rectangle) { Bounds box = script.gameObj.collider.bounds; return(box.SqrDistance(pos) <= agentRadius); } return(false); }
// Collisions check with deterministic dynamic obstacles public bool CheckDynamicObstaclesCollisions(FootstepPlanningState state) { if (obstacles == null) { return(false); } if (obstacles.closeObstacles == null) { return(false); } List <DDObstacle> visibleObstacles = obstacles.visibleObstacles; if (visibleObstacles.Count <= 0) { return(false); } //float[] actualTime = new float[visibleObstacles.Count]; // Move obstacles //int i = 0; foreach (DDObstacle ddObstacle in visibleObstacles) { ObstaclesScript obstacleScript = ddObstacle.script; float timeWindow = 0; //for (float timeWindow = -0.5f; timeWindow <= 0.5f; timeWindow += 0.5f) { if (obstacleScript != null) { //actualTime[i] = obstacleScript.animation["test"].time; float actualTime = obstacleScript.animation["test"].time; float time = state.time + timeWindow; obstacleScript.animation["test"].wrapMode = WrapMode.PingPong; obstacleScript.animation["test"].enabled = true; obstacleScript.animation["test"].time = time; obstacleScript.animation.Play("test"); obstacleScript.animation.Sample(); //obstacleScript.animation["test"].enabled = false; //Debug.DrawRay(pair.Value.obstacle.transform.position,4*Vector3.up,Color.blue); state.obstaclePos = ddObstacle.obstacle.transform.position; // Check collisions //bool collision = CheckJointsCollisions(state); //bool collision = CheckRootCollisions(state); //Vector3 aux = state.obstaclePos - state.currentPosition; //bool collision = (aux.magnitude - 1 - analyzer.GetRadius()) < 0; bool collision = CheckObstacleCollision(state, obstacleScript); //if (collision) { //Debug.DrawRay(state.currentPosition,4*Vector3.up,Color.yellow); //Debug.Log("Possible collision detected at" + state.time); //Debug.Break (); } obstacleScript.animation["test"].enabled = true; //obstacleScript.animation["test"].time = actualTime[i]; obstacleScript.animation["test"].time = actualTime; obstacleScript.animation.Play("test"); obstacleScript.animation.Sample(); if (collision) { return(true); } } } } return(false); }
public bool CheckObstacleCollision(Vector3 pos, ObstaclesScript script) { //if (state == null || script == null) // return false; if (script.ShapeChoice.Shape == Enum.Enumeration.Sphere) { Vector3 obstaclePos = script.gameObj.transform.position; Vector3 aux = obstaclePos - pos; float sphereRadius = script.size.x; return (aux.magnitude - sphereRadius - agentRadius) <= 0; } else if (script.ShapeChoice.Shape == Enum.Enumeration.Rectangle) { Bounds box = script.gameObj.collider.bounds; return box.SqrDistance(pos) <= agentRadius; } return false; }
public bool CheckObstacleCollision(FootstepPlanningState state, ObstaclesScript script) { //if (state == null || script == null) // return false; if (script.ShapeChoice.Shape == Enum.Enumeration.Sphere) { Vector3 obstaclePos = script.gameObj.transform.position; Vector3 aux = obstaclePos - state.currentPosition; float sphereRadius = script.size.x; return (aux.magnitude - sphereRadius - analyzer.GetRadius()) <= 0; } else if (script.ShapeChoice.Shape == Enum.Enumeration.Rectangle) { Bounds box = script.gameObj.collider.bounds; return box.SqrDistance(state.currentPosition) <= analyzer.GetRadius(); } return false; }