I'm a little stuck. I'm trying to draw a cylinder between two spheres while keeping its size always the same on the Z axis in Game View. The aim is to get a collider around the gizmos line by turning off the cylinder's Mesh Renderer to make it invisible. It would also be good to replace the Gizmos line with a LineRenderer but I would always need it to be the same size as the sphere on both sides.
This is my code:
GameObject newSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
// currentPosPoint = mouse click
newSphere.transform.position = currentPosPoint;
// this way all the spheres appear of the same size even if in a different position on the Z axis
newSphere.transform.localScale = Vector3.one * ((new Plane(cam.transform.forward,
cam.transform.position).GetDistanceToPoint(
newSphere.transform.position)) / radiusPoint);
// if the sphere is not the first
if (count > 1) {
Vector3 start = posSphere1;
Vector3 end = posSphere2;
GameObject newCyl = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
// I find the central position between the two spheres
Vector3 pos = Vector3.Lerp(start, end, 0.5f);
newCyl.transform.position = pos;
// I find the rotation of the cylinder
Vector3 dirV = Vector3.Normalize(end - start);
Vector3 cylDefaultOrientation = new Vector3(0,1,0);
Vector3 rotAxisV = dirV + cylDefaultOrientation;
rotAxisV = Vector3.Normalize(rotAxisV);
newCyl.transform.rotation = new Quaternion(rotAxisV.x, rotAxisV.y, rotAxisV.z, 0);
float dist = Vector3.Distance(end, start);
// it is from this point that I cannot get out of it
// I resize the cylinder like the sphere
newCyl.transform.localScale = Vector3.one * ((new Plane(cam.transform.forward,
cam.transform.position).GetDistanceToPoint(
newCyl.transform.position)) / radiusPoint);
// I assign the length of the cylinder to join its two ends to the spheres
Vector3 newScale = newCyl.transform.localScale;
newScale.y= dist/2;
newCyl.transform.localScale = newScale;
}
As you can see the cylinders are the same size as the sphere only if they are oriented on the X axis.
Do you have any suggestions to always get the same size of cylinders? As I said it is not needed to use cylinders, the target is to get a collider around the gizmos line, any change would be good.