public void FixedUpdate() { if (penindex != nodesSorted.Count - 1 && nodesSorted.Count > 0 && penindex >= 0) { Time.timeScale = 0.5f; pen.position = nodesSorted[penindex].nodeLoc; penindex++; } else if (penindex == nodesSorted.Count - 1) { pen.position = nodesSorted[penindex].nodeLoc; penindex = -2; } else if (penindex == -2 && nodesSorted.Count > 0 && CHRotating == false && GeneratingNetSense == false && AddingInterior == false) { pen.position = nodesSorted[0].nodeLoc; } else if (initialShrink == true && SphericSensor.transform.localScale.x > 0.1f) { Time.timeScale = 1.0f; SphericSensor.transform.localScale = Vector3.Lerp(SphericSensor.transform.localScale, new Vector3(0.05f, 0.05f, 0.05f), initialShrinkSpeed); } else if (CHRotating == true) { Time.timeScale = 1.0f; GWPointer2D.transform.Rotate(CHrotSpeed, 0.0f, 0.0f, Space.Self); } else if (GeneratingNetSense == true) { Time.timeScale = 1.0f; int ix = 0; foreach (Node Sortednode in nodesSorted) { Node nodeNext; if (ix != nodesSorted.Count - 1) { nodeNext = nodesSorted[ix + 1]; } else { nodeNext = nodesSorted[0]; } Vector3 goloc = new Vector3(Sortednode.nodeLoc.x + nodeNext.nodeLoc.x, Sortednode.nodeLoc.y + nodeNext.nodeLoc.y, Sortednode.nodeLoc.z + nodeNext.nodeLoc.z) / 2f; Vector3 goscale = new Vector3(.05f, .05f, Vector3.Distance(Sortednode.nodeLoc, nodeNext.nodeLoc)); GameObject go = GameObject.Instantiate(microSensor, goloc, Quaternion.identity); go.transform.localScale = goscale; go.transform.LookAt(Sortednode.node.transform); SphereDetect sd = go.GetComponent <SphereDetect>(); sd.visman = this; sd.nodeStart = Sortednode; sd.nodeEnd = nodeNext; go.transform.parent = realcentroid.transform; ix++; } GeneratingNetSense = false; AddingInterior = true; } else if (AddingInterior == true && centroidgo.transform.localScale.x >= 0.0003f && nodesSorted.Count != nodes.Count) { Time.timeScale = 1.0f; realcentroid.transform.localScale = Vector3.Lerp(realcentroid.transform.localScale, new Vector3(0.0001f, 0.0001f, 0.0001f), initialShrinkSpeed2D); } else { Time.timeScale = 1.0f; initialShrink = false; AddingInterior = false; if (nodesSorted.Count == nodes.Count && nodesSorted.Count > 0) { foreach (Node finalnode in nodesSorted) { finalnode.activation = ACTIVATION.sorted; finalnode.node.GetComponent <MeshRenderer>().material = sortedmat; } realcentroid.SetActive(false); } } }
// void OnTriggerEnter() // { // Debug.Log("dsf"); // } // void OnTriggerStay() // { // Debug.Log("ddasf"); // } void OnTriggerEnter(Collider nodee) { if (DetectType == 0) { } else if (DetectType == DETECTTYPE.gw2D) { if (nodee.gameObject == visman.nodesSorted[0].node && visman.pointNode.node != nodee.gameObject) { visman.CHRotating = false; visman.GWPointer2D.SetActive(false); //print(visman.convexpointLocs.Count); visman.realcentroid = GameObject.Instantiate(visman.centroidgo, visman.CentroidCalc(visman.convexpointLocs), Quaternion.identity); visman.GeneratingNetSense = true; } else if (nodee.gameObject != visman.pointNode.node) { visman.pointNode = visman.nodes[int.Parse(nodee.gameObject.name)]; visman.pointNode.node = nodee.gameObject; visman.pointNode.SortID = visman.nodesSorted.Count; visman.GWPointer2D.transform.position = nodee.transform.position; visman.nodesSorted.Add(visman.nodes[int.Parse(nodee.gameObject.name)]); visman.pointNode.activation = VisualizationManager.ACTIVATION.sorted; visman.pointNode.node.GetComponent <MeshRenderer>().material = visman.stage1mat; visman.convexpointLocs.Add(visman.pointNode.nodeLoc); } } else if (DetectType == DETECTTYPE.micro2D) { VisualizationManager.Node nodereal = visman.nodes[int.Parse(nodee.gameObject.name)]; if (nodereal.activation == VisualizationManager.ACTIVATION.norm) { nodereal.activation = VisualizationManager.ACTIVATION.sorted; nodereal.node.GetComponent <MeshRenderer>().material = visman.stage1mat; // |||||||||| // |||||||||| // |||||||||| // |||||||||| // \\\\\///// // \\\\//// // \\\/// // \\// // \/ nodereal.SortID = nodeEnd.SortID; visman.nodesSorted.Insert(nodeStart.SortID + 1, nodereal); if (nodereal.SortID != visman.nodesSorted.Count - 1) { for (int i = nodereal.SortID + 1; i < visman.nodesSorted.Count; i++) { visman.nodesSorted[i].SortID++; } } // /\ //\\ ///\\\ ////\\\\ /////\\\\\ //////\\\\\\ ///////\\\\\\\ ////////\\\\\\\\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //|||||||||||||\ //visman.printSortedIDS = true; //Debug.Break(); //redistribute microsensor Vector3 goloc = new Vector3(physfront.position.x + nodereal.nodeLoc.x, physfront.position.y + nodereal.nodeLoc.y, physfront.position.z + nodereal.nodeLoc.z) / 2.0000000f; Vector3 goscale = new Vector3(.05f, .05f, Vector3.Distance(physfront.position, nodereal.nodeLoc)); GameObject go = GameObject.Instantiate(visman.microSensor, goloc, Quaternion.identity); go.transform.localScale = goscale; go.transform.LookAt(physfront.transform); SphereDetect sd = go.GetComponent <SphereDetect>(); sd.visman = visman; sd.nodeStart = nodeStart; sd.nodeEnd = nodereal; go.transform.parent = visman.realcentroid.transform; // goloc = new Vector3(physend.position.x + nodereal.nodeLoc.x, physend.position.y + nodereal.nodeLoc.y, physend.position.z + nodereal.nodeLoc.z) / 2.0000000f; goscale = new Vector3(.05f, .05f, Vector3.Distance(physend.position, nodereal.nodeLoc)); go = GameObject.Instantiate(visman.microSensor, goloc, Quaternion.identity); go.transform.localScale = goscale; go.transform.LookAt(physfront.transform); sd = go.GetComponent <SphereDetect>(); sd.visman = visman; sd.nodeStart = nodereal; sd.nodeEnd = nodeEnd; go.transform.parent = visman.realcentroid.transform; // gameObject.SetActive(false); visman.ClearPath(); visman.DrawPath(); } } }