接着看视频 = =
学习内容:用代码创建一个圆环 由36个方体组成 2.方体环绕飞行 3. 原件(长方体)自转
代码如下:
private GameObject louti;
private float r = 5;
private float angle = 0; //角度
// Use this for initialization
void Start ()
{
louti = (GameObject)GameObject.Find("louti");
GameObject cube = (GameObject)GameObject.Find("Cube");
for(int i = 0; i<36;i++)
{
float hudu = angle*Mathf.PI/180; //求弧度
float dx = r*Mathf.Cos(hudu);
float dy = r*Mathf.Sin(hudu);
Transform center = louti.transform;
GameObject cube1 = (GameObject)GameObject.Instantiate(cube);
cube1.transform.position = new Vector3(center.position.x+dx, center.position.y+dy, center.position.z);
cube1.transform.LookAt(center); //改变朝向 旋转方体
angle += 10;
}
}
效果是这样子的 在想当初老师用这样的教学多好啊 ~~~~~~
2.方体围绕一个点旋转
代码如下:
private GameObject centerObj;
private float r = 9;
private float angle = 0;
// Use this for initialization
void Start ()
{
centerObj = GameObject.Find("louti");
float hudu = angle* Mathf.PI/180;
float x1 = centerObj.transform.position.x + r* Mathf.Cos(hudu);
float y1 = centerObj.transform.position.y + r* Mathf.Sin(hudu);
this.transform.position = new Vector3(x1,y1,centerObj.transform.position.z);
}
// Update is called once per frame
void Update () {
angle++;
centerObj = GameObject.Find("louti");
float hudu = angle* Mathf.PI/180;
float x1 = centerObj.transform.position.x + r* Mathf.Cos(hudu);
float y1 = centerObj.transform.position.y + r* Mathf.Sin(hudu);
this.transform.position = new Vector3(x1,y1,centerObj.transform.position.z);
this.transform.LookAt(centerObj.transform.position);
}
效果不截图了。
3. 原件(长方体)自转
代码如下:
private float xAngle = 0;
private float yAngle = 0;
void Update ()
{
//方法- 转两个 x,y不是能控制的 x不是围绕自己的轴旋转的 系统自带的
// this.transform.Rotate(0,1,0); //围绕y轴旋转 y的值变大 速度变快
//方法二 旋转 x,y两个轴 都是围绕各自的旋转 两种方法 旋转的时候 单轴是一样的效果
//但是两个轴多轴了 就不一样的效果了
xAngle ++;
yAngle ++;
this.transform.localEulerAngles = new Vector3(xAngle,yAngle,0);
}
大家可以试一下效果...