/// In the construction of the data structure we generate the initial square /// centered in 0,0,0 and with side 2. /// The structures that hold the data are created and filled public DataStructure() { step = 0; unfoldCount = 0; faceTree = new FaceTree(); edgeBTL = new EdgeBinaryTreeList(); vertexLL = new VertexLinkedList(); Vertex v1 = new Vertex(new Vector3(-1, 1, 0), step); Vertex v2 = new Vertex(new Vector3(1, 1, 0), step); Vertex v3 = new Vertex(new Vector3(1, -1, 0), step); Vertex v4 = new Vertex(new Vector3(-1, -1, 0), step); Edge e1 = new Edge(v1, v2, step); Edge e2 = new Edge(v2, v3, step); Edge e3 = new Edge(v3, v4, step); Edge e4 = new Edge(v4, v1, step); v1.addEdge(e1); v1.addEdge(e4); v2.addEdge(e1); v2.addEdge(e2); v3.addEdge(e2); v3.addEdge(e3); v4.addEdge(e3); v4.addEdge(e4); List <Vertex> vList = new List <Vertex>(); vList.Add(v1); vList.Add(v2); vList.Add(v3); vList.Add(v4); List <Edge> eList = new List <Edge>(); eList.Add(e1); eList.Add(e2); eList.Add(e3); eList.Add(e4); Face f = new Face(vList, step); vertexLL.addVertex(v1); vertexLL.addVertex(v2); vertexLL.addVertex(v3); vertexLL.addVertex(v4); edgeBTL.addEdge(e1); edgeBTL.addEdge(e2); edgeBTL.addEdge(e3); edgeBTL.addEdge(e4); faceTree.setRoot(f); }
public void OnTriggerEnter(Collider other) { if (_Active == true) { // Check against the static collisions if (other.gameObject.tag == "Collision") { // Play impact effect ParticleSystem effect = Instantiate(WeaponManager._pInstance._FireballImpactEffect, gameObject.transform.position, Quaternion.identity); effect.gameObject.GetComponent <DestroyAfterTime>().enabled = true; // Destroy projectile FreeProjectile(); } // Has the fireball collided with the minion's collision? if (other.gameObject.tag == "Enemy") { Char_Crystal crystal = other.gameObject.GetComponent <Char_Crystal>(); // Damage minion crystal.Damage(_Owner.GetOwner(), _ImpactDamage); // Check if minion has been killed if (crystal.GetHealth() <= 0) { // Add to instigator's kill count _Owner.GetOwner()._Player.AddKillCount(); } // Play impact effect ParticleSystem effect = Instantiate(WeaponManager._pInstance._FireballImpactEffect, gameObject.transform.position, Quaternion.identity); effect.gameObject.GetComponent <DestroyAfterTime>().enabled = true; // Destroy fireball FreeProjectile(); // Play impact sound SoundManager._pInstance.PlayFireballImpact(); } // Check against face tree if (other.gameObject.tag == "FaceTree") { FaceTree tree = other.gameObject.GetComponent <FaceTree>(); tree.OnHit(); // Play impact effect ParticleSystem effect = Instantiate(WeaponManager._pInstance._FireballImpactEffect, gameObject.transform.position, Quaternion.identity); effect.gameObject.GetComponent <DestroyAfterTime>().enabled = true; // Destroy fireball FreeProjectile(); // Play impact sound SoundManager._pInstance.PlayFireballImpact(); } } }
// In the construction of the data structure we generate the initial square centered in 0,0,0 and with side 2. The structures that hold the data are created and filled public DataStructure(Vector3 v) { camToModel = v; step = 0; unfoldCount = 0; faceTree = new FaceTree(); edgeBTL = new EdgeBinaryTreeList(); vertexLL = new VertexLinkedList(); Vertex v1 = new Vertex(new Vector3(-1, 1, 0), step, 0); Vertex v2 = new Vertex(new Vector3(1, 1, 0), step, 1); Vertex v3 = new Vertex(new Vector3(1, -1, 0), step, 2); Vertex v4 = new Vertex(new Vector3(-1, -1, 0), step, 3); VertexNode vn1 = new VertexNode(v1); VertexNode vn2 = new VertexNode(v2); VertexNode vn3 = new VertexNode(v3); VertexNode vn4 = new VertexNode(v4); Edge e1 = new Edge(vn1, vn2, step, 0); Edge e2 = new Edge(vn2, vn3, step, 1); Edge e3 = new Edge(vn3, vn4, step, 2); Edge e4 = new Edge(vn4, vn1, step, 3); vn1.addEdge(e1); vn1.addEdge(e4); vn2.addEdge(e1); vn2.addEdge(e2); vn3.addEdge(e2); vn3.addEdge(e3); vn4.addEdge(e3); vn4.addEdge(e4); List <VertexNode> vList = new List <VertexNode>(); vList.Add(vn1); vList.Add(vn2); vList.Add(vn3); vList.Add(vn4); List <Edge> eList = new List <Edge>(); eList.Add(e1); eList.Add(e2); eList.Add(e3); eList.Add(e4); Face f = new Face(vList, step, 0); for (int i = 0; i < 4; i++) { eList[i].faces.Add(f); } vertexLL.addVertex(vn1); vertexLL.addVertex(vn2); vertexLL.addVertex(vn3); vertexLL.addVertex(vn4); edgeBTL.addEdge(e1); edgeBTL.addEdge(e2); edgeBTL.addEdge(e3); edgeBTL.addEdge(e4); edgeBTL.count = 4; faceTree.setRoot(f); faceTree.count = 1; }