游戏引擎安装好了,也创建了新的项目,大概了解了功能,我们就开发小游戏吧。一边开发一边学习,学的快,也快乐,也记忆深刻!!!go!go!go!

先设置Unity引擎的界面布局

新的界面原来如下。

这样,不能同时看Scene和Game界面。需要调整下。

点击右上角Default按钮,选择2by3模式。

效果如下。

这样就ok了。

如果个人不习惯可以试试其他的。

第一步-导入骰子模型

我们开发的是骰子游戏,所以我们需要把骰子3d模型导入。一般3d模型有专人设计制作,我们开发人员直接导入就行,如果是独立开发人员,只能网上找找,有免费的最好了。模型如图。

从网上找的,没有想到骰子3d模型竟然还卖钱,贼贵!!!

我是从这里找了个免费的;骰子 免费的3D模型 - .3ds .obj .dae .fbx .mtl - Free3D

有了3d模型,把资源导入Unity项目中。

我们在资源管理文件夹下,创建图片文件夹,统一管理图片。

点击Project界面下,点击+号或Assets选项或Assets界面,鼠标右键选择create->Folder。文件夹命名为“Model”

打开创建的文件夹,鼠标右键选择Import New Asset按钮并选择xxx.3ds的文件,或把.3ds的文件拖入文件夹中。

导入成功后如图。

之后可以直接拖拽模型到Scene界面或Hierarchy的SampleScene下。

如此骰子模型就导入成功了 。接下来设置掷骰子场地。

第二步-设置掷骰子场地

Unity自带了一些游戏对象,如我们即将用的3D Object,3D Object里有cube(正方体),sphere(球体),capsule(胶囊),cylinder(圆柱体),plane(正方形平面)等。这里就不介绍其他的了。

我们这里制造简单的地形,直接用plane就行,不用复杂的terrain对象了。

在Hierarchy界面里,点击左上角的+号,或者界面中鼠标右键。选择3D Object -> Plane .

这样我们就增加了一面墙,我们制造的地形是全封闭的正方体,需要用6个plane。我们不需要重复以上的步骤,直接点击刚刚创建的plane,复制粘贴就可以。

现在看Scene和game界面,是有一块白色正方形图片,这时因为坐标都一样,重叠了。我们需要重新设置坐标形成正方体图形。先点击Hierarchy界面中的Plane,并看Inspector界面。

其中Transform是和坐标相关的参数。

Plane(Mesh Filter)是图形相关的参数,可以通过它变更图形,如正方体,圆柱体,或第三方导入的图形,如我们导入的骰子模型等。

Mesh Renderer是用于把网格渲染出来的组件,简单来讲就是渲染图形的,如基础的正方体是白色的方块,我们想要变更它的颜色时有在这个组建里调整参数就可以。

Mesh Collider采用网格资源并基于该网格构建其碰撞体。是和物体间的碰撞效果有关。

现在我们通过修改Transform中的参数来制造立方体。

先把6个plane的Position参数都修改为0。整数参数方便参考和修改。Position是游戏对象在Unity提供的Scene中的世界坐标。

我们有6个plane,第一个plane是立方体x,z轴向的平面。我们设置坐标为(0, 0, 0)。

坐标可以看Scene界面中的右上角。

第二个plane是x,y轴向的平面,坐标是(0, 5, 5)。Position是只和世界坐标有关,物体的朝向是由Rotation控制的。如果Rotation是(0, 0, 0)时,plane处于如图朝向。现在我们设置Rotation参数为(-90, 0, 0)。这样,plane就立起来了。

第三个plane和第二个正相对。Position坐标是(0, 5, -5),Rotation参数是(90, 0, 0)。

注意: plane是有正反面的,反面时看Scene界面,plane处于透明。如图。

正面如图。

因为我们是要制造一个中空的立方体,把骰子放到里面。所以用反面。

第四个plane是z,y轴向的右平面。Position坐标是(5, 5, 0),Rotation参数是(0, 0, 90)。

第五个plane是z,y轴向的左平面。Position坐标是(5, 5, 0),Rotation参数是(0, 0, 90)。

第六个plane是x,z轴向的封顶平面。Position坐标是(0. 10, 0),Rotation参数是(180, 0, 0)。

这样场地就制造好了。

第三步-骰子模型属性设置

首先设置骰子模型的坐标,和plane设置一样。Position坐标是(0, 5, 0)。

之后要添加刚体组件(Rigidbody)和盒型碰撞体组件(Box Collider)。在Hierarchy界面点击骰子模型dice,并看Inspector界面。点击Add Component按钮。会有个弹窗,在弹窗中搜索刚体组件和盒型碰撞体组件添加就可以。

添加后。

刚体组件是实现游戏对象的物理行为的主要组件。连接刚体后,对象将立即响应重力。如果还添加了一个或多个__碰撞体__组件,则游戏对象会因发生碰撞而移动。我们这里主要体现在重力效果,没有这个组件,骰子模型会固定在坐标位置上,就是不会移动,处于停止状态。

加了刚体组件后。

但是如果只有刚体组件,骰子模型和我们设置的立方体场地不会碰撞,也就是直接穿墙。

盒型碰撞体组件是一种基本的长方体形状原始碰撞体。没加这个组件骰子模型和我们设置的立方体场地不会碰撞,也就是直接穿墙。

添加组件后。

现在我们还需要给骰子添加弹性,不然骰子直接落下来不会有任何变化。

物理材质Physic Material;

当碰撞器发生碰撞的时候,具有该材质的游戏物体就会具有该材质的属性;我们制作弹性材质。

在Project界面下的Assets文件夹下,点击左上角+号或者Assets下鼠标右键,新建Physic Material(命名为mat),并更改其弹力参数为1。

在骰子模型的碰撞器属性中悬着Material为刚刚设置的Physic Material。点击圆点会有弹窗,选择刚刚新建的mat材质就可以。

第四步-骰子操作方式设置。

现在我们开始制作骰子操作方式。这个需要脚本,也就是c#帮助。Unity本身支持javascript和c#两种脚本语言,这里我们用c#。

首先在Project界面下的Assets文件夹下,点击左上角+号或者Assets下鼠标右键,新建文件夹(命名为Script)。

在新建的Script文件夹下,新建C# Script文件,命名为ShakePhone。

打开新建文件内容如下。

在这里我们要加入操作代码。 C#相关的内容在其他教程里在详细讲解。这次直接用。

  private CharacterController Cc; // 角色控制器

  public float speed = 10.0F;//骰子移动速度

  void Awake() {
       Cc = gameObject.GetComponent<CharacterController>();
       // speed = 3.0f;
  }
  // Start is called before the first frame update
  void Start()
  {
       
  }

void Update () {

       //向前运动——W
	if(Input.GetKey(KeyCode.W))
	{
		print("w");
		Cc.Move(Vector3.forward * Time.deltaTime * speed);
	}

	//向后运动——S
	if(Input.GetKey(KeyCode.S))
	{
		print("s");
		Cc.Move(Vector3.back * Time.deltaTime * speed);
	}

	//向左运动——A
	if(Input.GetKey(KeyCode.A))
	{
		print("a");
		Cc.Move(Vector3.left * Time.deltaTime * speed);
	}

	//向右运动——D
	if(Input.GetKey(KeyCode.D))
	{
		print("d");
		Cc.Move(Vector3.right * Time.deltaTime * speed);
	}

	//向上运动——Q
	if(Input.GetKey(KeyCode.Q))
	{
		print("a");
		Cc.Move(Vector3.up * Time.deltaTime * speed);
	}

	//向下运动——E
	if(Input.GetKey(KeyCode.E))
	{
		print("d");
		Cc.Move(Vector3.down * Time.deltaTime * speed);
	}


}

保存修改后的文件,我们需要把脚本挂载到游戏对象,也就是骰子上,用来操作。

如同添加组件,在Hierarchy界面点击骰子模型dice,并看Inspector界面。点击Add Component按钮。在弹窗中搜索ShakePhone脚本并添加。

在脚本中,我们使用了CharacterController游戏对象,这个是Unity3D自带的,是角色控制器。在游戏对象中添加组件Character Controller,如果没有这个组件,脚本里的操作将不起作用。

这样操作方式就完成了。接下来就可以测试游戏了。

点击播放按钮开始游戏。并点击Game界面,就可以开始游戏了。操作按钮是Q,W,E,A,S,D。



这样我们的骰子游戏就完成了。这个只是一个简单的演示Unity的功能的简单游戏。

下一个教程里我们在讲解其他更多的功能。

游戏源码我上传到了GitHub上。可以去下载看。

游戏源码路径:https://github.com/wantHek/UnityGame/tree/main/One

关于FristTestUnity3D.unitypackage如何导入请看教程Unity3D游戏资源-unitypackage导入