示例#1
0
    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);
    }
示例#2
0
    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);
    }