/** * 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); }
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); }