第一个Unity项目Hello Unity

来源:互联网 发布:wpf 数据绑定 编辑:程序博客网 时间:2024/06/02 06:37

保留版权,转载请注明出处:http://blog.csdn.net/panjunbiao/article/details/9318811

在这一篇文章里,参照宣雨松的《Unity 3D游戏开发》第38页的例子,用C#写出我的第一个Unity项目 Hello Unity。

第一步,新建项目:


点击“Create Project”创建项目之后,我们看到项目中只有一个摄像机对象“Main Camera”。


并且Unity为我们创建了一个未命名(untitled)的场景,点击“File -> Save Scene”可以设定场景的名字并保存。


点击保存场景菜单之后,可以在保存场景窗口中输入场景的名字,以及保存的文件夹位置:


保存之后,我们看看Assets文件夹:

可以看到刚刚保存的场景文件“Hello Scene.unity”。

现在我们来向这个场景添加一个平面(Plane)、一个立方体(Cube)和一个球体(Sphere):


放入平面之后,为了方便起见,我们将平面的中心位置调整到(0,0,0),调整的方法是在场景中选中平面,然后在右边Inspector视图中将Position的X、Y、Z设置为0即可,如下:


同样的方法插入立方体和球体,并把他们手工调整到你喜欢的位置(例如在平面上方)

这些物体创建之后是没有颜色的,如下面:


为此我们需要给它们添加材质,例如平面添加一个绿色材质,立方体添加一个红色材质,球体添加一个蓝色材质。

点击“Assets --> Create --> Material”菜单创建材质:


在Assets材质视图中,将新创建的材质命名为Red:


在Inspector视图中,将Red材质修改为红色:


然后将Assets视图中的红色材质小球拖到场景视图中的立方体上面,此时立方体变成红色,Inspector视图中也会包含材质的信息:


同样的方法,创建蓝色、绿色材质,并把平面变成绿色,球体变成蓝色:


这个时候物体虽然有了颜色,但看起来还是很暗的,需要设置光源,例如我们在平面上方放置一个点光源,点击菜单“GameObject --> Create Other --> Point Light”:


这样场景就被照亮啦,通过Game视图或者点击运行按钮,就可以看到游戏中的场景了,如果看不到,可能是摄像机的位置和角度的问题,调整好就OK。

现在,我们想做一些最简单的控制,例如控制立方体旋转和移动,并且在屏幕上显示按钮和文字,如何做到呢?

先来创建一个脚本,方法是点击菜单“Assets --> Create --> C# Script”,在Assets视图中会出现一个脚本资源,将它命名为“HelloScript”:


双击脚本图标,打开MonoDevelop编辑器,写入下面的代码:

 

using UnityEngine;using System.Collections;public class HelloScript : MonoBehaviour {//对象的移动速度//translate speed of the objectint translateSpeed = 10;//对象的旋转速度//rotation speed of the opbjectint rotateSpeed = 500;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {//如果监测到W键按下,则对象向上移动if (Input.GetKey(KeyCode.W)) {transform.Translate (Vector3.up * Time.deltaTime * translateSpeed);}//如果监测到S键按下,则对象向下移动if (Input.GetKey(KeyCode.S)) {transform.Translate (Vector3.down * Time.deltaTime * translateSpeed);}//如果监测到A键按下,则对象向左移动if (Input.GetKey(KeyCode.A)) {transform.Translate (Vector3.left * Time.deltaTime * translateSpeed);}//如果监测到D键按下,则对象向右移动if (Input.GetKey(KeyCode.D)) {transform.Translate (Vector3.right * Time.deltaTime * translateSpeed);}//如果监测到Q键按下,则对象向左旋转if (Input.GetKey(KeyCode.Q)) {transform.Rotate(Vector3.up * Time.deltaTime * (rotateSpeed));}//如果监测到E键按下,则对象向右旋转if (Input.GetKey(KeyCode.E)) {transform.Rotate(Vector3.up * Time.deltaTime * (-rotateSpeed));}}void OnGUI() {//显示“向左旋转”按钮并设置事件响应脚本//Display Turn Left button and set eventif (GUI.Button(new Rect(10, 10, 70, 30), "Turn Left")) {transform.Rotate(Vector3.up * Time.deltaTime * (rotateSpeed));}//显示“向右旋转”按钮并设置事件响应脚本//Display Turn Right button and set eventif (GUI.Button(new Rect(170, 10, 70, 30), "Turn Right")) {transform.Rotate(Vector3.up * Time.deltaTime * (-rotateSpeed));}//显示对象的位置和角度//Display position of the object.GUI.Label(new Rect(250, 10, 200, 30), "Location: " + transform.position);GUI.Label(new Rect(250, 50, 200, 30), "Rotation: " + transform.rotation);}}

例如我们想用该脚本控制立方体,只需要将脚本资源从Assets视图拖到场景Scene视图中的立方体对象即可。

现在,我们就可以运行第一个“游戏”啦:


参考资料:宣雨松《Unity 3D游戏开发》第38页。

相关原代码已放到CSDN CODE,请点击打开:CODE

0 0
原创粉丝点击