您的位置:首页 > 移动开发 > Unity3D

unity3D学习笔记2

2013-11-06 23:29 281 查看
接着看视频 = =

学习内容:用代码创建一个圆环 由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);
}

大家可以试一下效果...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息