Unity3D 游戏开发day01
2013-10-01 16:55
274 查看
首先感谢雨松MOMO,我是看他写的Unity3D 游戏开发书籍开始学习我的Unity3D游戏开发的。
下面是这位大牛的网址
http://www.xuanyusong.com/
整款Unity3D开发工具其实也就几个模块而已,只要你有心去学习,很快就可以上手。我就不想去介绍了
在Project视图中创建Js代码,
这里的Update()方法是系统自动调用的方法,可以理解为Unity3D脚本编程的一个生命周期函数,重写这个函数。类似于Android的生命周期函数。
Vector3.forward表示向前移,Time.deltaTime表示Update方法上一帧持续的时间。由于Update方法是在游戏每一帧中都会调用,
所以Vector3.forward*Time.deltaTime表示一帧移动的距离。当然可以在后面乘以倍数,提高速度
使用脚本控制模型的移动
在这里使用了很多函数,都可以见名知意,
通过实验表明,
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上手还不错,感觉还行!
下面是这位大牛的网址
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上手还不错,感觉还行!
相关文章推荐
- Unity3D独立游戏开发日记(二):摆放建筑物
- Unity3D游戏 4000 开发(2)
- Unity3D+免费工具开发2D游戏之四:创建计分界面
- 【Unity3D游戏开发学习笔记】(八)Unity观察视角的实现
- 【iphone游戏开发】cocos2d和unity3d的比较
- [Unity3D]手机3D游戏开发:如何实现最高分的存储与显示(七)----使用Game ID避免数据重复输入
- 使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)
- 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
- Unity3D 开发ios时困扰多时游戏开始画面图片的分辨率
- 浅析:Unity3D开发的游戏如何降低包体大小
- unity3D游戏开发十四之NGUI一
- Unity3D游戏开发之使用Unity3D开发2D游戏(二)(2DTookit插件亲测)
- Unity3d游戏开发框架-UI管理类 UIManager
- Unity3D游戏开发 脚本入门(六)
- Unity3D【教材Unity3D游戏开发:2.7】
- Unity3D Android游戏开发视频教程+源文件(英文正版)
- 选中拖动Unity3D系列教程–使用免费工具在Unity3D中开发2D游戏 第二节(下)
- Unity3D游戏开发之使用Unity3D开发2D游戏(二)(2DTookit插件亲测)
- Unity3D开发之游戏破解以及游戏数据篡改
- 【Unity3D游戏开发】基础知识之Tags和Layers (三二)