Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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;
        }
    }
Ejemplo n.º 4
0
 public Triangle(ApplyParticle first, ApplyParticle second, ApplyParticle third)
 {
     P1 = first.particle;
     P2 = second.particle;
     P3 = third.particle;
 }