做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);
}
}