void buildNet(Vector3 nodePos, float maxRadius, ref List <STNetNode> container) { float angle = 0.0f; for (int i = 0; i < 6; i++, angle += 60.0f) { float posX = nodePos.x + netBtwNodesWidth * Mathf.Cos(angle / 180 * Mathf.PI); float posY = nodePos.y + netBtwNodesWidth * Mathf.Sin(angle / 180 * Mathf.PI); float posZ = 1; Vector3 point = new Vector3(posX, posY, posZ); //Debug.Log ("POS - " + point); Vector3 beginPoint = new Vector3(0, 0, 0); if ((Vector3.Distance(point, beginPoint) > maxRadius) || checkForPoint(point, ref container)) { continue; } else { STNetNode node = Instantiate(netNodePref) as STNetNode; node.Net = this; container.Add(node); node.transform.position = point; buildNodeN++; buildNet(point, maxRadius, ref container); } } }
public void BuildWithPrefab(STNetNode nodePrefab, float density, int nElementsNodes) { netBtwNodesWidth = density; maxElementNodesDist = density * nElementsNodes; netNodePref = nodePrefab; setElementNodesArray(); }
public void BuildWithPrefab(STNetNode nodePrefab, float density, int nElementsNodes) { elementNetWidth = nElementsNodes * 2 + 1; elementNetHeight = nElementsNodes * 2 + 1; netBtwNodesWidth = density; netNodePref = nodePrefab; elementNetNodesArray = new STNetNode [elementNetWidth, elementNetHeight]; setElementNodesArray(); }
public void HideElementNetNode() { for (int i = 0; i < elementNetHeight; i++) { for (int j = 0; j < elementNetWidth; j++) { STNetNode netPoint = elementNetNodesArray[i, j]; netPoint.renderer.enabled = false; netPoint.renderer.collider.enabled = false; } } }
void setElementNodesArray() { for (int i = 0; i < elementNetHeight; i++) { for (int j = 0; j < elementNetWidth; j++) { STNetNode node = Instantiate(netNodePref) as STNetNode; node.Net = this; elementNetNodesArray[i, j] = node; } } }
public void Clear() { for (int i = 0; i < elementNetHeight; i++) { for (int j = 0; j < elementNetWidth; j++) { STNetNode forDel = elementNetNodesArray[i, j]; Destroy(forDel.gameObject); forDel = null; } } }
public void BuildWithPrefab(STNetNode nodePrefab, float density, int nElementsNodes) { netBtwNodesWidth = density; // maxNodesDist = density * nNodes; // maxElementNodesDist = density * nElementsNodes; prevElementPostion = Vector3.zero; elementNodesCount = nElementsNodes; netNodePref = nodePrefab; activeNodes = new List <STNetNode> (); setElementNodesArray(); }
public void ShowElementNetNode(Vector3 elementPostion) { for (int i = 0; i < elementNetHeight; i++) { for (int j = 0; j < elementNetWidth; j++) { STNetNode netPoint = elementNetNodesArray[i, j]; netPoint.renderer.enabled = true; netPoint.renderer.collider.enabled = true; netPoint.transform.position = new Vector3(elementPostion.x + (i - elementNetWidth / 2) * netBtwNodesWidth, elementPostion.y + (j - elementNetHeight / 2) * netBtwNodesWidth, 2); } } }
public void SetActiveNodes(List <Vector3> activeNodesArray) { //Debug.Log ("Active"); foreach (Vector3 nodePos in activeNodesArray) { STNetNode node = Instantiate(netNodePref) as STNetNode; activeNodes.Add(node); Vector3 thePos = nodePos; thePos.z = 50; node.transform.position = thePos; node.ChangeType(NET_NODE_T.STAR); node.SetActive(true); } }
public void Clear() { //Debug.Log ("CLEAR"); // while(elementNetNodesArray.Count > 0){ // STNetNode forDel = elementNetNodesArray[0]; // Destroy(forDel.gameObject); // elementNetNodesArray.Remove(forDel); // // } //prevElementPostion = Vector3.zero; while (activeNodes.Count > 0) { STNetNode forDel = activeNodes[0]; Destroy(forDel.gameObject); activeNodes.Remove(forDel); } }
void setElementNodesArray() { elementNetNodesArray = new List <STNetNode> (); Vector3 rootNode = new Vector3(0, 0, 0); prevElementPostion = new Vector3(0, 0, 0); STNetNode node = Instantiate(netNodePref) as STNetNode; node.Net = this; elementNetNodesArray.Add(node); node.transform.position = rootNode; buildNet(rootNode, maxElementNodesDist, ref elementNetNodesArray); HideElementNetNode(); }
void buildNet(int elementCount, ref List <STNetNode> container) { STNetNode node = Instantiate(netNodePref) as STNetNode; node.Net = this; node.transform.position = Vector3.zero; node.transform.parent = STLevel.GetNodesNet().transform; container.Add(node); float angle = 45.0f; float currentAngle = 0.0f; for (int i = 1; i <= elementCount; i++) { currentAngle = 0.0f; do { // Debug.Log (node.transform.position); float posX = i * netBtwNodesWidth * Mathf.Cos(currentAngle / 180 * Mathf.PI); float posY = i * netBtwNodesWidth * Mathf.Sin(currentAngle / 180 * Mathf.PI); float posZ = 1; Vector3 point = new Vector3(posX, posY, posZ); node = Instantiate(netNodePref) as STNetNode; node.Net = this; container.Add(node); node.transform.position = point; node.transform.parent = STLevel.GetNodesNet().transform; currentAngle += angle; } while (currentAngle < 360.0f); //angle /= 2.0f; } }
public Vector3 GetClothestNetNodePos(Vector3 elementPos) { float minDistance = 1000000.0f; STNetNode minDistNode = null; foreach (STNetNode netNode in elementNetNodesArray) { float curDist = Vector3.Distance(netNode.transform.position, elementPos); if (curDist < minDistance) { minDistance = curDist; minDistNode = netNode; } } if (minDistNode != null) { return(minDistNode.transform.position); } else { return(elementPos); } }
public Vector3 GetClothestNetNodePos(Vector3 elementPos) { float minDistance = 1000000.0f; Vector3 clothesNetNode = new Vector3(1000, 1000, 1000); for (int i = 0; i < elementNetHeight; i++) { for (int j = 0; j < elementNetWidth; j++) { STNetNode netPoint = elementNetNodesArray[i, j]; float distBtwPoints = Vector3.Distance(elementPos, netPoint.transform.position); if (distBtwPoints < minDistance) { minDistance = distBtwPoints; clothesNetNode = netPoint.transform.position; } } } //Debug.Log ("CLOTHEST NODE - " + clothesNetNode + "THE DISTANCE - " + minDistance); return(clothesNetNode); }