예제 #1
0
    /**
     * Init cable particles
     *
     * Creates the cable particles along the cable length
     * and binds the start and end tips to their respective game objects.
     */
    void InitCableParticles()
    {
        // Calculate segments to use
        if (totalSegments > 0)
        {
            segments = totalSegments;
        }
        else
        {
            segments = Mathf.CeilToInt(cableLength * segmentsPerUnit);
        }

        Vector3 cableDirection       = (endPoint.position - transform.position).normalized;
        float   initialSegmentLength = cableLength / segments;

        points = new CableParticle[segments + 1];

        // Foreach point
        for (int pointIdx = 0; pointIdx <= segments; pointIdx++)
        {
            // Initial position
            Vector3 initialPosition = transform.position + (cableDirection * (initialSegmentLength * pointIdx));
            points[pointIdx] = new CableParticle(initialPosition);
        }

        // Bind start and end particles with their respective gameobjects
        CableParticle start = points[0];
        CableParticle end   = points[segments];

        start.Bind(this.transform);
        end.Bind(endPoint.transform);
    }
예제 #2
0
    void InitCableParticles()
    {
        if (totalSegments > 0)
        {
            segments = totalSegments;
        }
        else
        {
            segments = Mathf.CeilToInt(cableLength * segmentsPerUnit);
        }

        Vector3 cableDirection       = (endPoint.position - transform.position).normalized;
        float   initialSegmentLength = cableLength / segments;

        points = new CableParticle[segments + 1];

        for (int pointIdx = 0; pointIdx <= segments; pointIdx++)
        {
            Vector3 initialPosition = transform.position + (cableDirection * (initialSegmentLength * pointIdx));
            points[pointIdx] = new CableParticle(initialPosition);
        }

        CableParticle start = points[0];
        CableParticle end   = points[segments];

        start.Bind(this.transform);
        end.Bind(endPoint.transform);
    }