unity 圆形算法

做VR项目,物理项目时需要做电流导向图,需要一个圆形算法,百度一下找到了如下http://www.cnblogs.com/wuzhang/p/wuzhang20150410.html

 Vector3 Pos(float Angle)
    {
       float x1 = transform.position.x + 0.5f * Mathf.Cos(Angle * Mathf.PI / 180);
       float y1 = transform.position.y + 0.5f * Mathf.Sin(Angle * Mathf.PI / 180);
       return new Vector3(x1, y1, transform.position.z);
    }

发现是圆形,但在使用时物体需要拖动,旋转,这个方法返回的是一个世界坐标,于是修改如下

 Vector3 Pos(float Angle)
    {
        float x1 = 0.5f * Mathf.Cos(Angle * Mathf.PI / 180);
        float y1 = 0.5f * Mathf.Sin(Angle * Mathf.PI / 180);
        return transform.position + transform.right * x1 + transform.up * y1;
    }

圆形相当于2D,一直Z轴不变,修改掉XY方向为自身求出偏移值加于自身

 

    void Start()
    {
        strpath = "Prefabs/qin/CircularRotationCube";
        float Angle = 360 / Count;  //count为需要生成的数量,我设置的为生成五个

        for (int i = 0; i < Count; i++)
        {
            obj = Instantiate(Resources.Load(strpath) as GameObject, Pos(Angle * i), Quaternion.identity);
            obj.transform.SetParent(transform);
        }

    }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部