public void spawnParticles(int w, int h) { float x = 0.0f, y = 0.0f; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { GameObject go = Instantiate(clothBoid, new Vector3(x, -y, 0), new Quaternion()) as GameObject; ApplyParticle spawned = go.GetComponent <ApplyParticle>(); spawned.particle = new Particle(new Vector3(x, -y, 0), Vector3.zero, 5); allPoints.Add(spawned); go.name = "Particle " + (allPoints.Count - 1).ToString(); spawned.transform.parent = transform; x += Rest; } x = 0.0f; y += Rest; } allPoints[0].particle.isKinematic = true; allPoints[w - 1].particle.isKinematic = true; allPoints[allPoints.Count - 1].particle.isKinematic = true; allPoints[allPoints.Count - w].particle.isKinematic = true; }
public int FindIndex(List <ApplyParticle> PointList, ApplyParticle aPoint) { int index = 0; for (int i = 0; i < PointList.Count; i++) { if (PointList[i] == aPoint) { index = i; break; } } return(index); }
private void Bounds(ApplyParticle blocked) { float forceX = blocked.particle.Force.x, forceY = blocked.particle.Force.y, forceZ = blocked.particle.Force.z; float velX = blocked.particle.Velocity.x, velY = blocked.particle.Velocity.y, velZ = blocked.particle.Velocity.z; if (Camera.main.WorldToScreenPoint(blocked.particle.Position).x < 15.0f) { if (blocked.particle.Force.x < 0.0f) { blocked.particle.Force = new Vector3(0, forceY, forceZ); } blocked.particle.Velocity = new Vector3(-velX, velY, velZ) * 0.65f; } if (Camera.main.WorldToScreenPoint(blocked.particle.Position).x > Screen.width - 15.0f) { if (blocked.particle.Force.x > 0.0f) { blocked.particle.Force = new Vector3(0, forceY, forceZ); } blocked.particle.Velocity = new Vector3(-velX, velY, velZ) * 0.65f; } if (Camera.main.WorldToScreenPoint(blocked.particle.Position).y < 15.0f) { if (blocked.particle.Force.y < 0.0f) { blocked.particle.Force = new Vector3(forceX, 0, forceZ); } blocked.particle.Velocity = new Vector3(velX, -velY, velZ) * 0.65f; } if (Camera.main.WorldToScreenPoint(blocked.particle.Position).y > Screen.height - 15.0f) { if (blocked.particle.Force.y > 0.0f) { blocked.particle.Force = new Vector3(forceX, 0, forceZ); } blocked.particle.Velocity = new Vector3(velX, -velY, velZ) * 0.65f; } }
public Triangle(ApplyParticle first, ApplyParticle second, ApplyParticle third) { P1 = first.particle; P2 = second.particle; P3 = third.particle; }