void Update() { custom = new TagSensor(gameObject, min, max, fov, direction); switch (Mode) { case mode.Line: custom.DrawLines(); break; case mode.Grid: custom.GridLines(); break; case mode.Sweep: custom.SweepLines(SweepingRate); break; case mode.SweepLine: custom.SweepLines(SweepingRate / 2); custom.DrawLines(); break; default: break; } detected = custom.OnDetect("tag1"); //Debug.Log(detected); }
void Update() { //without structs sensorA.MaxRange = maxRange; sensorA.MinRange = minRange; sensorA.FOV = FOV; sensorA.OffsetY = lookAtAngle; Detected = sensorA.OnDetect(tagName); sensorA.GridLines(); }
void Update() { //without structs sensorA.MaxRange = maxRange; sensorA.MinRange = minRange; sensorA.FOV = FOV; sensorA.OffsetY = lookAtAngle; Detected = sensorA.OnDetect(tagName); sensorA.GridLines(); //with structs for (int i = 0; i < TagSensorStructs.Length; i++) { TagSensorStructs[i].Sensor.Disabled = TagSensorStructs[i].Disabled; TagSensorStructs[i].Sensor.MaxRange = TagSensorStructs[i].maxRange; TagSensorStructs[i].Sensor.MinRange = TagSensorStructs[i].minRange; TagSensorStructs[i].Sensor.FOV = TagSensorStructs[i].FOV; TagSensorStructs[i].Sensor.OffsetY = TagSensorStructs[i].lookAtAngle; TagSensorStructs[i].Detected = TagSensorStructs[i].Sensor.OnDetect(TagSensorStructs[i].tagName); //broken TagSensorStructs[i].Sensor.GridLines(); //Debug.Log(TagSensorStructs[i].sensor.OnDetect(tagName)); } }
void Update() { float step = speed * Time.deltaTime; float dist = Vector3.Distance(Player.transform.position, transform.position); sensor.MaxRange = maxRange; sensor.MinRange = minRange; sensor.FOV = FOV; sensor.OffsetY = lookAtAngle; Detected = sensor.OnDetect("player"); switch (ActiveState) { case State.Patrol: if (ActiveWaypoint == Waypoint.Left) { transform.LookAt(A.transform.position); transform.position = Vector3.MoveTowards(transform.position, A.transform.position, step); } else if (ActiveWaypoint == Waypoint.Right) { transform.LookAt(B.transform.position); transform.position = Vector3.MoveTowards(transform.position, B.transform.position, step); } if (transform.position == A.transform.position) { ActiveWaypoint = Waypoint.Right; } else if (transform.position == B.transform.position) { ActiveWaypoint = Waypoint.Left; } break; case State.Chase: transform.LookAt(Player.transform.position); transform.position = Vector3.MoveTowards(transform.position, Player.transform.position, step); break; case State.Stop: break; default: break; } if (Player.transform.position.z >= goal.transform.position.z) { ActiveState = State.Stop; } else { if (Detected) { ActiveState = State.Chase; } else { ActiveState = State.Patrol; } } sensor.GridLines(); //if if (transform.position == Player.transform.position) { Player.transform.position = new Vector3(0, 0, -145); transform.position = new Vector3(0, 0, -130); ActiveState = State.Patrol; } }
void Update() { float step = speed * Time.deltaTime; float dist = Vector3.Distance(Player.transform.position, transform.position); estimate = sensor.DotToAngle(transform.forward, Vector3.Normalize(Player.transform.position - transform.position)) * 2; switch (ActiveState) // { case State.Patrol: if (ActiveWaypoint == Waypoint.Left) { transform.LookAt(A.transform.position); transform.position = Vector3.MoveTowards(transform.position, A.transform.position, step); } else if (ActiveWaypoint == Waypoint.Right) { transform.LookAt(B.transform.position); transform.position = Vector3.MoveTowards(transform.position, B.transform.position, step); } if (transform.position == A.transform.position) { ActiveWaypoint = Waypoint.Right; } else if (transform.position == B.transform.position) { ActiveWaypoint = Waypoint.Left; } break; case State.Chase: transform.LookAt(Player.transform.position); transform.position = Vector3.MoveTowards(transform.position, Player.transform.position, step); break; case State.Stop: break; default: break; } if (Player.transform.position.z >= goal.transform.position.z) { ActiveState = State.Stop; } else { /* the way thats actually working * if (dist <= range & angle > estimate) * { * ActiveState = State.Chase; * } * else if (dist > range) * { * ActiveState = State.Patrol; * }*/ //the way I want to do it if (sensor.OnDetect("player")) { ActiveState = State.Chase; } else if (dist > range) { ActiveState = State.Patrol; } } sensor.GridLines(); if (transform.position == Player.transform.position) { Player.transform.position = new Vector3(0, 0, -145); transform.position = new Vector3(0, 0, -130); ActiveState = State.Patrol; } }