一个简单的Unity3D实例
标签:
杂谈 |
分类: Unity3D |
一、创建一个Unity 3D项目
打开Unity 3D游戏编辑器,点击File->New
Project。在弹出的“Project Wizard”窗体中选择Project
Location。如果通过“Browse..”选择的话需要选择一个空的文件夹。点击Create创建项目。
Unity默认为创建一个场景和摄像机。
二、加入基本模型
在Hierarchy视图中分别创建游戏对像:Plane(平面)、Cube(立方体)、Sphere(球体)、Capsule(胶囊体)、Cylinder(圆柱体)。利用变换工具和场景工具将模型稍微移动下。
三、添加光源。在Hierarchy视图中创建一个Directional
Light。旋转广元角度使其投射到场景中。利用变换工具和场景工具将模型调整模型位置,使其他模型都在平面之上。调整摄像机,保证能看到所有游戏对象。如下图:http://s3/mw690/c3a43605tddc767956912&690
四、编写移动脚本
1、在Project视图中创建一个JavaScript脚本,名字为“Script_Move”。
内容如下:
//模型移动速度
var TranslateSpeed = 20;
//模型旋转速度
var RotateSpeed = 1000;
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(10, 50, 70, 30), "向左移动"))
{
transform.Translate(Vector3.left * Time.deltaTime *
TranslateSpeed);
}
if(GUI.Button(Rect(90, 50, 70, 30), "向后移动"))
{
transform.Translate(Vector3.back * 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.position);
}
说明:
OnGUI():此方法用于绘制GUI界面组件。
GUI.Button():设置一个按钮,当按钮被按下时返回true。
GUI.Label():设置一个文本框。
transform:当前脚本绑定模型的变换对象。
transform.Rotate():设置模型旋转。
transform.Translate():设置模型平移。
Time.deltaTime:只读属性。表示完成最后一帧的时间。单位为秒。
Vector3:标志模型的方向。
Rect:规定一个矩形区域。
2、编写好的脚本拖拽到Hierarchy视图的立方体(Cube)对象上。运行游戏。
3、为立方体添加刚体属性。点击运行,可以控制立方体移动。但是立方体可以穿过另一个模型,所以需要天机刚体属性。在Hierarchy视图中选中立方体对象,在Inspector视图的最下面点击Add
Component -> Physics ->
Rigidbody。
http://s1/mw690/c3a43605tddc75b9b7ac0&690这样立方体就会和其他模型产生碰撞效果。
参考:《Unity 3D游戏开发》第二章实例
后一篇:GUI控件

加载中…