计算位置以将对象放置在车轮上

jba*_*g10 -3 unity-game-engine

我正在使用3D老虎机。对于卷轴,我试图弄清楚如何计算X,Y,Z位置以及Y旋转以放置诸如樱桃,橘子等对象。总的来说,一共有28件。

我以为计算周长会有所帮助,但我不确定如何。

der*_*ugo 5

This is actually really simple and done in a few lines

public GameObject prefab;

public float radius;
public float amount;

// Start is called before the first frame update
private void Start()
{
    var angle = 0f;

    for (var i = 0; i <= amount; i++)
    {
        var y = Mathf.Sin(Mathf.Deg2Rad * angle) * radius;
        var z = - Mathf.Cos(Mathf.Deg2Rad * angle) * radius;

        var obj = Instantiate(prefab, transform);
        obj.transform.localPosition = new Vector3(0, y, z);
        obj.transform.localRotation = Quaternion.Euler(angle, 0, 0);

        angle += (360f / amount);
    }
}

// just for demo
private void Update()
{
    transform.localRotation = Quaternion.Euler(Time.time * 45, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在此处输入图片说明