# 根据角度和距离生成游戏物体(以圆心向圆圈线上生成物体)

//根据原点,角度,半径获取物体的位置.
//x = 原点x + 半径 * 邻边除以斜边的比例,   邻边除以斜边的比例 = cos(弧度) , 弧度 = 角度 *3.14f / 180f;
float x = centerPos.x + radius * Mathf.Cos (angle * 3.14f / 180f);
float y = centerPos.y + radius * Mathf.Sin (angle * 3.14f / 180f);

using UnityEngine;
using System.Collections;

public class CreateGameObject : MonoBehaviour {

private Vector3 centerPos;    //圆心的位置
private float radius = 5;        //半径
private float angle = 0;        //角度

public GameObject cube;

// Use this for initialization
void Start () {
CreateMosquitoCoil ();
}

public void CreateCubeAngle30()
{
centerPos = transform.position;

//每隔30度就生成一个小方块
for (angle = 0; angle < 360; angle+=30) {

//根据原点,角度,半径获取物体的位置.
//x = 原点x + 半径 * 邻边除以斜边的比例,   邻边除以斜边的比例 = cos(弧度) , 弧度 = 角度 *3.14f / 180f;
float x = centerPos.x + radius * Mathf.Cos (angle * 3.14f / 180f);
float y = centerPos.y + radius * Mathf.Sin (angle * 3.14f / 180f);

//生成一个方块
GameObject obj = (GameObject)GameObject.Instantiate (cube, new Vector3 (x, y, centerPos.z), Quaternion.identity);
}
}

//生成蚊香
public void CreateMosquitoCoil()
{
centerPos = transform.position;

//每隔30度就生成一个小方块
for (int i = 0; i < 30; angle+=20,radius+=0.3f,i++) {

//根据原点,角度,半径获取物体的位置.  x = 原点x + 半径 * 邻边除以斜边的比例
float x = centerPos.x + radius * Mathf.Cos (angle * 3.14f / 180f);
float y = centerPos.y + radius * Mathf.Sin (angle * 3.14f / 180f);

//生成一个方块
GameObject obj = (GameObject)GameObject.Instantiate (cube, new Vector3 (x, y, centerPos.z), Quaternion.identity);
}
}
}

posted @ 2015-08-21 16:37 盘子脸 阅读(...) 评论(...) 编辑 收藏