public override Cloner.PSR GetPSR(Cloner.PSR referer, float i) { float angle = 2f * Mathf.PI * i / n; if (axe == Cloner.Axis.X) { referer.position += referer.rotation * new Vector3(0, radius * Mathf.Cos(angle), radius * Mathf.Sin(angle)); referer.rotation *= Quaternion.Euler(360f * i / n, 0, 0); } if (axe == Cloner.Axis.Y) { referer.position += referer.rotation * new Vector3(radius * Mathf.Cos(angle), 0, radius * Mathf.Sin(angle)); referer.rotation *= Quaternion.Euler(0, -360f * i / n, 0); } if (axe == Cloner.Axis.Z) { referer.position += referer.rotation * new Vector3(radius * Mathf.Cos(angle), radius * Mathf.Sin(angle), 0); referer.rotation *= Quaternion.Euler(0, 0, 360f * i / n); } return(referer); }
public override Cloner.PSR GetPSR(Cloner.PSR referer, float i) { referer.position += (referer.rotation * step) * (i - (n - 1) * (offset * 0.5f + 0.5f)); return(referer); }