Unity初体验:Hello Unity项目学习笔记

第一步,新建项目:

Unity学习笔记(二)——第一个Unity项目Hello Unity_3d

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_游戏开发_02

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_3d_03

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_原代码_04

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_游戏开发_05

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

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_游戏开发_06

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_游戏开发_07

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

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_事件响应_08

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

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_原代码_09

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_3d_10

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_c#_11

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_事件响应_12

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_3d_13

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_c#_14

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

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

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

Unity学习笔记(二)——第一个Unity项目Hello Unity_3d_15

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

登录后复制


using UnityEngine;
using System.Collections;

public class HelloScript : MonoBehaviour {
	
	//对象的移动速度
	//translate speed of the object
	int translateSpeed = 10;
	
	//对象的旋转速度
	//rotation speed of the opbject
	int rotateSpeed = 500;
	

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void 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 event
		if (GUI.Button(new Rect(10, 10, 70, 30), "Turn Left")) {
			transform.Rotate(Vector3.up * Time.deltaTime * (rotateSpeed));
		}
		
		//显示“向右旋转”按钮并设置事件响应脚本
		//Display Turn Right button and set event
		if (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学习笔记(二)——第一个Unity项目Hello Unity_c#_16


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空