// Use this for initialization void Start() { disable_all_range_circles(); curr_wp_mode = wp_mode.selecten; foreach (GameObject n in nodeObjects) { n.GetComponent <path_point> ().is_selected = false; } }
private void deselect_all_waypoints() { curr_wp_mode = wp_mode.none; foreach (GameObject n in nodeObjects) { n.GetComponent <path_point> ().is_selected = false; map_wp_to_ui(-1); } selected_wp_id = -1; }
public void remove_connections() { curr_wp_mode = wp_mode.none; if (selected_wp_id > 0) { List <wp_edge> edges_to_remove = new List <wp_edge> (); foreach (wp_edge n in edgelist) { if (n.dest_id == selected_wp_id || n.source_id == selected_wp_id) { edges_to_remove.Add(n); } } foreach (wp_edge n in edges_to_remove) { edgelist.Remove(n); } refresh_edge_visuals(); } }
// Update is called once per frame void Update() { //DEBUG if (curr_wp_mode == wp_mode.none) { curr_wp_mode = wp_mode.selecten; //Debug.log("none to selecten"); disable_all_range_circles(); disable_all_colliders(); } //WP DELTETEN auch hier wieder den wp in der base ausnehmen if (curr_wp_mode == wp_mode.deleten && selected_wp_id > 1) { //if (GameObject.Find ("node_" + selected_wp_id.ToString ()).GetComponent<path_point> ().type == path_point.node_type.normal_node) { if (getNodeObjectById(selected_wp_id).GetComponent <path_point> ().type == path_point.node_type.normal_node) { //alle edes löschen foreach (wp_edge n in edgelist) { if (n.dest_id == selected_wp_id || n.source_id == selected_wp_id) { edgelist.Remove(n); } } //WP Objekt löschen //Destroy (GameObject.Find ("node_" + selected_wp_id.ToString ())); Destroy(getNodeObjectById(selected_wp_id)); GameObject.Find(vars.base_name).GetComponent <base_manager>().res_a_storage += wp_add_cost_a; GameObject.Find(vars.base_name).GetComponent <base_manager>().res_b_storage += wp_add_cost_b; GameObject.Find("audio_playback_manager").GetComponent <audio_playback_manager>().play_wp_remove_sound(); //alle linien neu anzeigen lassen refresh_edge_visuals(); //switch ui view to default GameObject.Find("ui_manager").GetComponent <ui_manager> ().slot_0_set_empty(); } } //WP ADDEN if (curr_wp_mode == wp_mode.adden) { disable_all_range_circles(); //if(GameObject.Find ("node_" + selected_wp_id.ToString ()).GetComponent<path_point>().type == path_point.node_type.normal_node){ if (waypoint_prefab != null) { //Debug.log("add 1"); //enable_all_colliders (); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; // Casts the ray and get the first game object hit if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { //Debug.log("add 2"); //Debug.log (hit.collider); if (sgo == null) { sgo = (GameObject)Instantiate(waypoint_prefab, new Vector3(hit.point.x, 0.0f, hit.point.z), Quaternion.FromToRotation(Vector3.up, hit.normal)); //neue instanz erstellen //Debug.log("add 3"); sgo.GetComponent <path_point>().disabled_collider(); } //Debug.log(sgo.GetComponent<CapsuleCollider>().enabled); if (Vector3.Distance(new Vector3(hit.point.x, 0.0f, hit.point.z), selected_wp_pos) <= selection_range && hit.collider.gameObject.tag == "ground") { //Debug.log("add 4"); sgo.transform.position = new Vector3(hit.point.x, 0.0f, hit.point.z); sgo.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal); if (!EventSystem.current.IsPointerOverGameObject()) { // WP kostet nur scouts! if (Input.GetMouseButtonDown(0) && GameObject.Find(vars.base_name).GetComponent <base_manager>().bought_scout_ants > 0) { //Debug.log ("add wp process"); //GameObject sgo = (GameObject)Instantiate (waypoint_prefab, hit.point, Quaternion.FromToRotation (Vector3.up, hit.normal)); //neue instanz erstellen sgo.GetComponent <path_point> ().is_selected = true; //den neu erstellten selektieren sgo.GetComponent <path_point> ().setStatus(path_point.node_status.placed); //selected_wp_id = sgo.GetComponent<path_point> ().waypoint_id; //Debug.log ("add edge"); Vector3 sd = sgo.transform.position; Vector3 dd = selected_wp_pos; //wp_edge tmp_edge = new wp_edge (edgelist.Count, sgo.GetComponent<path_point>().waypoint_id, selected_wp_id, Vector3.Distance (sd, dd)); //edgelist.Add (tmp_edge); wp_edge tmp_edge_test = new wp_edge(edgelist.Count, selected_wp_id, sgo.GetComponent <path_point>().waypoint_id, Vector3.Distance(sd, dd)); edgelist.Add(tmp_edge_test); select_waypoint_with_id(sgo.GetComponent <path_point> ().waypoint_id); //selected_wp_id = sgo.GetComponent<path_point> ().waypoint_id; map_wp_to_ui(sgo.GetComponent <path_point>().waypoint_id); //ui auf den neuen WP mappen curr_wp_mode = wp_mode.adden; //wieder in adden mode gehen sgo.GetComponent <path_point>().enable_collider(); sgo.GetComponent <CapsuleCollider>().enabled = true; //GameObject.Find(vars.base_name).GetComponent<base_manager>().res_a_storage -= wp_add_cost_a; //GameObject.Find(vars.base_name).GetComponent<base_manager>().res_b_storage -= wp_add_cost_b; //newScout.GetComponent<ScoutScript>().initializeScout(sgo.GetComponent<path_point>()); refresh_edge_visuals(); convert_edgelist_to_dijkstra_node_list(); GameObject newScout = (GameObject)Instantiate(scoutPrefab, new Vector3(transform.position.x + 2.0f, transform.position.y, transform.position.z), Quaternion.identity); ScoutScript scoutScript = newScout.GetComponent <ScoutScript>(); if (scoutScript) { scoutScript.initializeScout(sgo.GetComponent <path_point>()); } sgo = null; GameObject.Find("audio_playback_manager").GetComponent <audio_playback_manager>().play_wp_add_succ_sound(); } else if (Input.GetMouseButtonDown(1)) { GameObject.Find("audio_playback_manager").GetComponent <audio_playback_manager>().play_wp_add_fail_sound(); } //ende mouse button } //ende distance } } //ende raycast } //} if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown(1)) //abbrechen { if (sgo.GetComponent <path_point>().type == path_point.node_type.base_node) { removeBaseObject(sgo); } else if (sgo.GetComponent <path_point>().type == path_point.node_type.res_node) { removeResObject(sgo); } removeNodeObject(sgo); deselect_all_waypoints(); Destroy(sgo); sgo = null; WP_COUNTER_MAIN--; //Debug.log("select btn 1"); curr_wp_mode = wp_mode.none; } } } //WP CONNECTEN if (curr_wp_mode == wp_mode.connecten && selected_wp_id > 0) { //Debug.log ("con 1"); // if (GameObject.Find ("node_" + selected_wp_id.ToString ()).GetComponent<path_point>().type == path_point.node_type.normal_node) { //Debug.log ("con 2"); //disable_collider_on_slelected (selected_wp_id); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; RaycastHit coll_hit; // Casts the ray and get the first game object hit if (Physics.Raycast(ray, out hit, 100.0f)) { //Debug.log ("con 3"); if (nodeObjects.Contains(hit.collider.gameObject) && Vector3.Distance(hit.point, selected_wp_pos) < (selection_range + 1)) { //Debug.log ("con 4"); if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown(0)) { //Debug.log ("con 5"); //ist in reichweite //jetzt schauen ob int tmp_dest_id = hit.collider.gameObject.GetComponent <path_point> ().waypoint_id; int tmp_origin_id = selected_wp_id; bool war_was = false; List <wp_edge> edges_to_remove = new List <wp_edge> (); if (tmp_dest_id != tmp_origin_id) { //edges_to_remove.Clear(); foreach (wp_edge e in edgelist) { if ((e.dest_id == tmp_dest_id && e.source_id == tmp_origin_id) || (e.source_id == tmp_dest_id && e.dest_id == tmp_origin_id)) { war_was = true; edges_to_remove.Add(e); //Debug.log (" con 6 remove edje"); } } //neue edge adden if (!war_was) { GameObject.Find("audio_playback_manager").GetComponent <audio_playback_manager>().play_wp_connect_sound(); //Debug.log ("con 7 add edge"); Vector3 sd = getNodeObjectById(tmp_dest_id).transform.position; Vector3 dd = getNodeObjectById(tmp_origin_id).transform.position; wp_edge tmp_edge = new wp_edge(edgelist.Count, tmp_origin_id, tmp_dest_id, Vector3.Distance(sd, dd)); edgelist.Add(tmp_edge); //wp_edge tmp_edge_test = new wp_edge (edgelist.Count, tmp_dest_id, tmp_origin_id, Vector3.Distance (sd, dd)); //edgelist.Add (tmp_edge_test); refresh_edge_visuals(); curr_wp_mode = wp_mode.selecten; } else { GameObject.Find("audio_playback_manager").GetComponent <audio_playback_manager>().play_wp_disconnect_sound(); //remove edge foreach (wp_edge etr in edges_to_remove) { edgelist.Remove(etr); } } convert_edgelist_to_dijkstra_node_list(); } } } } } if (!EventSystem.current.IsPointerOverGameObject()) { //enable_collider_on_selected (selected_wp_id); if (Input.GetMouseButtonDown(1)) { curr_wp_mode = wp_mode.none; } } // } } //VERSCHIEBEN if (curr_wp_mode == wp_mode.verschieben && selected_wp_id > 0) { //Debug.log ("move 1"); disable_collider_on_slelected(selected_wp_id); enable_range_cirlce_on_slelected(selected_wp_id); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; // Casts the ray and get the first game object hit if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { //Debug.log ("move 2"); RaycastHit coll_hit; if (hit.collider.gameObject.tag == "ground" && Vector3.Distance(hit.point, selected_wp_pos) <= 10.0f) { //Debug.log ("move 3"); remove_connections(); Vector3 origin = new Vector3(selected_wp_pos.x, selected_wp_pos.y + selected_wp_scale.y, selected_wp_pos.z); Vector3 dest = new Vector3(hit.point.x, hit.point.y + selected_wp_scale.y, hit.point.z); if (Physics.Raycast(origin, dest, out coll_hit, 100)) { //Debug.log ("move 4"); //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.position = hit.point; //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.rotation = Quaternion.FromToRotation (Vector3.up, hit.normal); getNodeObjectById(selected_wp_id).gameObject.transform.position = hit.point; getNodeObjectById(selected_wp_id).gameObject.transform.rotation = Quaternion.FromToRotation(Vector3.up, hit.normal); //set new pos -> kosten abziehen if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown(0) && GameObject.Find(vars.base_name).GetComponent <base_manager>().res_a_storage >= wp_move_cost_a && GameObject.Find(vars.base_name).GetComponent <base_manager>().res_b_storage >= wp_move_cost_b) { //Debug.log ("move 5"); enable_collider_on_selected(selected_wp_id); curr_wp_mode = wp_mode.none; GameObject.Find(vars.base_name).GetComponent <base_manager>().res_a_storage -= wp_move_cost_a; GameObject.Find(vars.base_name).GetComponent <base_manager>().res_b_storage -= wp_move_cost_b; GameObject.Find("audio_playback_manager").GetComponent <audio_playback_manager>().play_wp_move_place_sound(); } //ende getmouse } } convert_edgelist_to_dijkstra_node_list(); refresh_edge_visuals(); } } if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown(1)) { enable_collider_on_selected(selected_wp_id); //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.position = selected_wp_pos; //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.rotation = selected_wp_rot; getNodeObjectById(selected_wp_id).gameObject.transform.position = selected_wp_pos; curr_wp_mode = wp_mode.none; } } } //SELECTEN if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown(0) && curr_wp_mode == wp_mode.selecten) { //Debug.log ("select 1"); disable_all_range_circles(); enable_all_colliders(); enable_range_cirlce_on_slelected(selected_wp_id); GameObject rayobj = GetClickedGameObject(); foreach (GameObject n in nodeObjects) { //Debug.log(n.gameObject.name); if (rayobj == n.gameObject && rayobj != null) { //Debug.log ("select 2"); int wpid = rayobj.GetComponent <path_point> ().waypoint_id; deselect_all_waypoints(); select_waypoint_with_id(wpid); map_wp_to_ui(wpid); selected_wp_id = wpid; curr_wp_mode = wp_mode.selecten; //Debug.log ("wp_selected id:" + selected_wp_id.ToString ()); break; } /*}else if (rayobj == n.gameObject && rayobj != null) { * * //Debug.log ("select 3"); * int wpid = rayobj.GetComponent<path_point> ().waypoint_id; * deselect_all_waypoints (); * select_waypoint_with_id (wpid); * map_wp_to_ui (wpid); * selected_wp_id = wpid; * curr_wp_mode = wp_mode.selecten; * //Debug.log ("wp_selected id:" + selected_wp_id.ToString ()); * break; * }*/ } } else { if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown(1)) { GameObject.Find("audio_playback_manager").GetComponent <audio_playback_manager>().play_wp_select_sound(); //Debug.log("deselect all"); deselect_all_waypoints(); disable_all_range_circles(); } } } } }
// Update is called once per frame void Update() { //DEBUG if (curr_wp_mode == wp_mode.none) { curr_wp_mode = wp_mode.selecten; //Debug.log("none to selecten"); disable_all_range_circles(); disable_all_colliders (); } //WP DELTETEN auch hier wieder den wp in der base ausnehmen if (curr_wp_mode == wp_mode.deleten && selected_wp_id > 1) { //if (GameObject.Find ("node_" + selected_wp_id.ToString ()).GetComponent<path_point> ().type == path_point.node_type.normal_node) { if(getNodeObjectById(selected_wp_id).GetComponent<path_point> ().type == path_point.node_type.normal_node) { //alle edes löschen foreach (wp_edge n in edgelist) { if (n.dest_id == selected_wp_id || n.source_id == selected_wp_id) { edgelist.Remove (n); } } //WP Objekt löschen //Destroy (GameObject.Find ("node_" + selected_wp_id.ToString ())); Destroy (getNodeObjectById(selected_wp_id)); GameObject.Find(vars.base_name).GetComponent<base_manager>().res_a_storage += wp_add_cost_a; GameObject.Find(vars.base_name).GetComponent<base_manager>().res_b_storage += wp_add_cost_b; GameObject.Find("audio_playback_manager").GetComponent<audio_playback_manager>().play_wp_remove_sound(); //alle linien neu anzeigen lassen refresh_edge_visuals (); //switch ui view to default GameObject.Find ("ui_manager").GetComponent<ui_manager> ().slot_0_set_empty(); } } //WP ADDEN if (curr_wp_mode == wp_mode.adden) { disable_all_range_circles(); //if(GameObject.Find ("node_" + selected_wp_id.ToString ()).GetComponent<path_point>().type == path_point.node_type.normal_node){ if (waypoint_prefab != null) { //Debug.log("add 1"); //enable_all_colliders (); Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; // Casts the ray and get the first game object hit if (Physics.Raycast (ray, out hit, Mathf.Infinity)) { //Debug.log("add 2"); //Debug.log (hit.collider); if(sgo == null){ sgo = (GameObject)Instantiate (waypoint_prefab, new Vector3(hit.point.x, 0.0f, hit.point.z), Quaternion.FromToRotation (Vector3.up, hit.normal)); //neue instanz erstellen //Debug.log("add 3"); sgo.GetComponent<path_point>().disabled_collider(); } //Debug.log(sgo.GetComponent<CapsuleCollider>().enabled); if(Vector3.Distance (new Vector3(hit.point.x, 0.0f, hit.point.z), selected_wp_pos) <= selection_range && hit.collider.gameObject.tag == "ground" ){ //Debug.log("add 4"); sgo.transform.position = new Vector3(hit.point.x, 0.0f, hit.point.z); sgo.transform.rotation = Quaternion.FromToRotation (Vector3.up, hit.normal); if (!EventSystem.current.IsPointerOverGameObject()) { // WP kostet nur scouts! if (Input.GetMouseButtonDown (0) && GameObject.Find(vars.base_name).GetComponent<base_manager>().bought_scout_ants >0 ) { //Debug.log ("add wp process"); //GameObject sgo = (GameObject)Instantiate (waypoint_prefab, hit.point, Quaternion.FromToRotation (Vector3.up, hit.normal)); //neue instanz erstellen sgo.GetComponent<path_point> ().is_selected = true; //den neu erstellten selektieren sgo.GetComponent<path_point> ().setStatus(path_point.node_status.placed); //selected_wp_id = sgo.GetComponent<path_point> ().waypoint_id; //Debug.log ("add edge"); Vector3 sd = sgo.transform.position; Vector3 dd = selected_wp_pos; //wp_edge tmp_edge = new wp_edge (edgelist.Count, sgo.GetComponent<path_point>().waypoint_id, selected_wp_id, Vector3.Distance (sd, dd)); //edgelist.Add (tmp_edge); wp_edge tmp_edge_test = new wp_edge (edgelist.Count, selected_wp_id, sgo.GetComponent<path_point>().waypoint_id, Vector3.Distance (sd, dd)); edgelist.Add (tmp_edge_test); select_waypoint_with_id(sgo.GetComponent<path_point> ().waypoint_id); //selected_wp_id = sgo.GetComponent<path_point> ().waypoint_id; map_wp_to_ui (sgo.GetComponent<path_point>().waypoint_id); //ui auf den neuen WP mappen curr_wp_mode = wp_mode.adden; //wieder in adden mode gehen sgo.GetComponent<path_point>().enable_collider(); sgo.GetComponent<CapsuleCollider>().enabled = true; //GameObject.Find(vars.base_name).GetComponent<base_manager>().res_a_storage -= wp_add_cost_a; //GameObject.Find(vars.base_name).GetComponent<base_manager>().res_b_storage -= wp_add_cost_b; //newScout.GetComponent<ScoutScript>().initializeScout(sgo.GetComponent<path_point>()); refresh_edge_visuals (); convert_edgelist_to_dijkstra_node_list (); GameObject newScout = (GameObject)Instantiate(scoutPrefab, new Vector3(transform.position.x+2.0f, transform.position.y, transform.position.z), Quaternion.identity); ScoutScript scoutScript = newScout.GetComponent<ScoutScript>(); if(scoutScript) { scoutScript.initializeScout(sgo.GetComponent<path_point>()); } sgo = null; GameObject.Find("audio_playback_manager").GetComponent<audio_playback_manager>().play_wp_add_succ_sound(); }else if(Input.GetMouseButtonDown (1)){ GameObject.Find("audio_playback_manager").GetComponent<audio_playback_manager>().play_wp_add_fail_sound(); } //ende mouse button } //ende distance } }//ende raycast } //} if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown (1)) { //abbrechen if(sgo.GetComponent<path_point>().type == path_point.node_type.base_node){ removeBaseObject(sgo); }else if(sgo.GetComponent<path_point>().type == path_point.node_type.res_node){ removeResObject(sgo); } removeNodeObject(sgo); deselect_all_waypoints(); Destroy(sgo); sgo = null; WP_COUNTER_MAIN--; //Debug.log("select btn 1"); curr_wp_mode = wp_mode.none; } } } //WP CONNECTEN if (curr_wp_mode == wp_mode.connecten && selected_wp_id > 0) { //Debug.log ("con 1"); // if (GameObject.Find ("node_" + selected_wp_id.ToString ()).GetComponent<path_point>().type == path_point.node_type.normal_node) { //Debug.log ("con 2"); //disable_collider_on_slelected (selected_wp_id); Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; RaycastHit coll_hit; // Casts the ray and get the first game object hit if (Physics.Raycast (ray, out hit, 100.0f)) { //Debug.log ("con 3"); if (nodeObjects.Contains(hit.collider.gameObject) && Vector3.Distance (hit.point, selected_wp_pos) < (selection_range+1)) { //Debug.log ("con 4"); if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown (0)) { //Debug.log ("con 5"); //ist in reichweite //jetzt schauen ob int tmp_dest_id = hit.collider.gameObject.GetComponent<path_point> ().waypoint_id; int tmp_origin_id = selected_wp_id; bool war_was = false; List<wp_edge> edges_to_remove = new List<wp_edge> (); if(tmp_dest_id != tmp_origin_id){ //edges_to_remove.Clear(); foreach (wp_edge e in edgelist) { if ((e.dest_id == tmp_dest_id && e.source_id == tmp_origin_id) || (e.source_id == tmp_dest_id && e.dest_id == tmp_origin_id)) { war_was = true; edges_to_remove.Add (e); //Debug.log (" con 6 remove edje"); } } //neue edge adden if (!war_was) { GameObject.Find("audio_playback_manager").GetComponent<audio_playback_manager>().play_wp_connect_sound(); //Debug.log ("con 7 add edge"); Vector3 sd = getNodeObjectById(tmp_dest_id).transform.position; Vector3 dd = getNodeObjectById(tmp_origin_id).transform.position; wp_edge tmp_edge = new wp_edge (edgelist.Count, tmp_origin_id, tmp_dest_id, Vector3.Distance (sd, dd)); edgelist.Add (tmp_edge); //wp_edge tmp_edge_test = new wp_edge (edgelist.Count, tmp_dest_id, tmp_origin_id, Vector3.Distance (sd, dd)); //edgelist.Add (tmp_edge_test); refresh_edge_visuals (); curr_wp_mode = wp_mode.selecten; } else { GameObject.Find("audio_playback_manager").GetComponent<audio_playback_manager>().play_wp_disconnect_sound(); //remove edge foreach (wp_edge etr in edges_to_remove) { edgelist.Remove (etr); } } convert_edgelist_to_dijkstra_node_list (); } } } } } if (!EventSystem.current.IsPointerOverGameObject()) { //enable_collider_on_selected (selected_wp_id); if (Input.GetMouseButtonDown (1)) { curr_wp_mode = wp_mode.none; } } // } } //VERSCHIEBEN if (curr_wp_mode == wp_mode.verschieben && selected_wp_id > 0) { //Debug.log ("move 1"); disable_collider_on_slelected (selected_wp_id); enable_range_cirlce_on_slelected (selected_wp_id); Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); RaycastHit hit; // Casts the ray and get the first game object hit if (Physics.Raycast (ray, out hit, Mathf.Infinity)) { //Debug.log ("move 2"); RaycastHit coll_hit; if (hit.collider.gameObject.tag == "ground" && Vector3.Distance (hit.point, selected_wp_pos) <= 10.0f) { //Debug.log ("move 3"); remove_connections(); Vector3 origin = new Vector3 (selected_wp_pos.x, selected_wp_pos.y + selected_wp_scale.y, selected_wp_pos.z); Vector3 dest = new Vector3 (hit.point.x, hit.point.y + selected_wp_scale.y, hit.point.z); if (Physics.Raycast (origin, dest, out coll_hit, 100)) { //Debug.log ("move 4"); //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.position = hit.point; //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.rotation = Quaternion.FromToRotation (Vector3.up, hit.normal); getNodeObjectById(selected_wp_id).gameObject.transform.position = hit.point; getNodeObjectById(selected_wp_id).gameObject.transform.rotation = Quaternion.FromToRotation (Vector3.up, hit.normal); //set new pos -> kosten abziehen if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown (0) && GameObject.Find(vars.base_name).GetComponent<base_manager>().res_a_storage >= wp_move_cost_a && GameObject.Find(vars.base_name).GetComponent<base_manager>().res_b_storage >= wp_move_cost_b ) { //Debug.log ("move 5"); enable_collider_on_selected (selected_wp_id); curr_wp_mode = wp_mode.none; GameObject.Find(vars.base_name).GetComponent<base_manager>().res_a_storage -= wp_move_cost_a; GameObject.Find(vars.base_name).GetComponent<base_manager>().res_b_storage -= wp_move_cost_b; GameObject.Find("audio_playback_manager").GetComponent<audio_playback_manager>().play_wp_move_place_sound(); }//ende getmouse } } convert_edgelist_to_dijkstra_node_list(); refresh_edge_visuals(); } } if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown (1)) { enable_collider_on_selected (selected_wp_id); //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.position = selected_wp_pos; //GameObject.Find ("node_" + selected_wp_id).gameObject.transform.rotation = selected_wp_rot; getNodeObjectById(selected_wp_id).gameObject.transform.position = selected_wp_pos; curr_wp_mode = wp_mode.none; } } } //SELECTEN if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown (0) && curr_wp_mode == wp_mode.selecten) { //Debug.log ("select 1"); disable_all_range_circles(); enable_all_colliders (); enable_range_cirlce_on_slelected (selected_wp_id); GameObject rayobj = GetClickedGameObject (); foreach (GameObject n in nodeObjects) { //Debug.log(n.gameObject.name); if(rayobj == n.gameObject && rayobj != null) { //Debug.log ("select 2"); int wpid = rayobj.GetComponent<path_point> ().waypoint_id; deselect_all_waypoints (); select_waypoint_with_id (wpid); map_wp_to_ui (wpid); selected_wp_id = wpid; curr_wp_mode = wp_mode.selecten; //Debug.log ("wp_selected id:" + selected_wp_id.ToString ()); break; } /*}else if (rayobj == n.gameObject && rayobj != null) { //Debug.log ("select 3"); int wpid = rayobj.GetComponent<path_point> ().waypoint_id; deselect_all_waypoints (); select_waypoint_with_id (wpid); map_wp_to_ui (wpid); selected_wp_id = wpid; curr_wp_mode = wp_mode.selecten; //Debug.log ("wp_selected id:" + selected_wp_id.ToString ()); break; }*/ } }else{ if (!EventSystem.current.IsPointerOverGameObject()) { if (Input.GetMouseButtonDown (1)) { GameObject.Find("audio_playback_manager").GetComponent<audio_playback_manager>().play_wp_select_sound(); //Debug.log("deselect all"); deselect_all_waypoints (); disable_all_range_circles (); } } } } }
// Use this for initialization void Start() { disable_all_range_circles (); curr_wp_mode = wp_mode.selecten; foreach (GameObject n in nodeObjects) { n.GetComponent<path_point> ().is_selected = false; } }
private void deselect_all_waypoints() { curr_wp_mode = wp_mode.none; foreach (GameObject n in nodeObjects) { n.GetComponent<path_point> ().is_selected = false; map_wp_to_ui (-1); } selected_wp_id = -1; }
public void remove_connections() { curr_wp_mode = wp_mode.none; if (selected_wp_id > 0) { List<wp_edge> edges_to_remove = new List<wp_edge> (); foreach (wp_edge n in edgelist) { if (n.dest_id == selected_wp_id || n.source_id == selected_wp_id) { edges_to_remove.Add (n); } } foreach (wp_edge n in edges_to_remove) { edgelist.Remove (n); } refresh_edge_visuals (); } }