首先感谢雨松MOMO,我是看他写的Unity3D 游戏开发书籍开始学习我的Unity3D游戏开发的。
下面是这位大牛的网址
http://www.xuanyusong.com/
整款Unity3D开发工具其实也就几个模块而已,只要你有心去学习,很快就可以上手。我就不想去介绍了
在Project视图中创建Js代码,
function Update(){ transform.Translate(Vector3.forward*Time.deltaTime); }这里的Update()方法是系统自动调用的方法,可以理解为Unity3D脚本编程的一个生命周期函数,重写这个函数。类似于Android的生命周期函数。
Vector3.forward表示向前移,Time.deltaTime表示Update方法上一帧持续的时间。由于Update方法是在游戏每一帧中都会调用,
所以Vector3.forward*Time.deltaTime表示一帧移动的距离。当然可以在后面乘以倍数,提高速度
function Update(){ transform.Rotate(Vector3.up*Time.deltaTime); }
Vector3.up表示自身旋转,我的理解为这个物体相对于摄像机拍摄到的自己的顶
使用脚本控制模型的移动
#pragma strict //模型移动速度 var TranslateSpeed = 20; //模型旋转速度 var RotateSpeed = 1000; //绘制UI function OnGUI(){ //设置GUI背景颜色 GUI.backgroundColor = Color.red; if(GUI.Button(Rect(10,10,70,30),"向左旋转")){ //想左旋转模型 transform.Rotate(Vector3.up *Time.deltaTime * (-RotateSpeed)); } if(GUI.Button(Rect(90,10,70,30),"向前移动")){ //向前移动 transform.Translate(Vector3.forward * Time.deltaTime * TranslateSpeed); } if(GUI.Button(Rect(170,10,70,30),"向右旋转")){ //向右旋转 transform.Rotate(Vector3.up * Time.deltaTime *RotateSpeed); } if(GUI.Button(Rect(90,50,70,30),"向后移动")){ //向后移动 transform.Translate(Vector3.forward * Time.deltaTime *(-TranslateSpeed)); } if(GUI.Button(Rect(10,50,70,30),"向左移动")){ //向左移动 transform.Translate(Vector3.right * Time.deltaTime *(-TranslateSpeed)); } if(GUI.Button(Rect(170,50,70,30),"向右移动")){ //向右移动 transform.Translate(Vector3.right * Time.deltaTime * TranslateSpeed); } //显示模型位置信息 GUI.Label(Rect(250,10,200,30),"模型的位置" + transform.position); //显示模型旋转信息 GUI.Label(Rect(250,50,200,30),"模型的旋转" +transform.rotation); }
GUI.Button(画区域)是生成了一个按钮,然后点击都会返回true,默认返回false,可以这样理解通过实验表明,
Vector3.up 表示相对于自己的Y轴(绿色轴) 向右旋转时,Roate()方法参数为正,向左旋转为负
vector3.right 表示相对于自己的X轴(红色轴) 向右移动是,Translate()方法里面的参数为正,左移为负
Vector3.forward 表示相对于自己的Z轴(蓝色轴) 想前移动为正,向后为负数
这个可以看物体上显示的坐标轴
GUI界面开发,GUI高级控件的开发了解。
在js中声明的public或者未添加任何关键字表示这个变量为共有变量,只有共有变量才可以出现在编辑器中,并且编辑可以可以修改
GUI.Label标签,可以添加文字,也可以添加贴图Texture信息
GUI.Button\GUI.RepeatButton点击不放按钮可以监控到变量。
GUI.TextField 和 GUI.PasswordField 前一个输入文本框,后一个输入密码框,并且都返回输入的字符串
PS:注意声明的变量需要初始化,如果不初始化会报错,可以在console控制台中看到红色的错误信息
最后,感觉Unity3D上手还不错,感觉还行!