Unity学习日记——初始unity及C#语言的应用

一.unity常用窗口

1.工程窗口

此窗口可访问和管理属于这个工程的所有资源,包括脚本、材质、子文件等。

2.场景视图窗口

此窗口是用来创造游戏世界的窗口,可在此窗口内选择和定位游戏的背景、摄像机、角色等游戏物体。

(1)移动视角

按住Alt和鼠标左键可在场景中旋转视角。

按住Alt和鼠标右键可缩放视角。

直接用鼠标左键可移动视角。

(2)飞行浏览

首先按住鼠标右键,然后用W、A、S、D可分别向前后左右移动,按shift可加速移动。

(3)将物体放在视野中心

在窗口中选中物体按F键,可将视野以该物体为中心。

(4)修改物体位置

键盘上Q、W、E、R分别对应移动、旋转、缩放、矩形变换工具。这些工具可以使物体按X轴、Y轴、Z轴方向变化。在选中其中的工具时选择物体,会显示出辅助线框,依据线框对物体进行移动,如下图。

3.层级窗口

层级窗口包含当前场景中所有的游戏物体列表。其中某些游戏物体是独立的物体,有些是预制体。除此之外,还可以表示父子节点,如下图。

 4.检视窗口

unity场景通常是由很多GameObject组成的,每个GameObject可能包含许多组件,如:脚本、刚体、声音等。检视窗口显示了当前选中物体的细节信息和组件的参数,可在此窗口对这些参数进行修该,也可以增加或删除组件,如下图。

5.游戏视图窗口

游戏视图窗口显示的实际游戏中看到的画面,按播放键可运行游戏,按暂停键可使游戏暂停。在暂停或运行状态下依然可以进行绝大多数编辑操作,但结束播放时,又会回到原始状态,如下图。

 

二.案例开发——打砖块

该游戏是通过上下左右移动,并发射小球将墙全部推倒。

1.搭建游戏场景——创建地面

在层级窗口中单机鼠标右键,选择3D Object->plane,就可以搭建一个平台了。将这个平台命名为ground,并在检视窗口中,将这个物体的position设置为0,0,0。接着在Assets中创建一个material,将这个材质命名为ground,用调色器将其颜色弄成偏暗色,最后拖拽给ground物体,地面就完成了。

2.搭建墙

1)创建预制体

创建cube方块,将其命名为wall,选中方块,添加组件physics>Rigidbody。创建材质,把材质设置为蓝色,赋给wall物体,然后将它拖入工程窗口中,就完成了预制体的创建。此时可看到wall的名字变成蓝色,说明预制体设置成功,如下图。

 2)创建墙

  拥有了这个预制体后,可通过快捷键Ctrl+D,复制许多同样属性的方块,将这些方块设置在预制体的下面,成为wall的子节点,方便管理。移动这些子节点前,在Edit->Grid and Snap中将Move参数改为1,这样做的目的是使方块按照1个单位进行移动。设置操作如下图。

移动方块时按住Ctrl键。

3.创建子弹

1)创建预制体

创建3D模型小球,并赋予红色材质,在小球上添加碰撞组件(用来检测墙与小球的碰撞)、刚体组件,将其拖入工程窗口,预制体就设置成功了。

2)调整摄像机

移动摄像机,将其面对墙的正面,并微微偏上,如下图。

 

 3)插入脚本

游戏需要用户移动视角,并扔出小球,可以在摄像机上插入脚本。

首先引入刚刚创建好的小球。

public GameObject ball;

再通过代码实现键盘控制视角,并放到updata的函数里。游戏的帧率并不稳定,随着硬件的负载,帧率会下降,每帧的时间会增加,因此再控制物体的速度时,不应该以每帧的距离为准,而应该以每秒距离为准,物体移动的距离将根据每帧时间的长短而变化,从而再时间上看起来移动是匀速的。因此,在vector3后乘以Time.deltatime。

float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
transform.Translate(new Vector3(h, v, 0) * Time.deltaTime);

键盘中W、A、S、D实现视角上下左右的移动,鼠标左键实现发射小球。条件判断,当鼠标点击时,生成一个小球(此过程叫实例化),此小球与预制体相同。将该小球的刚体组件赋给变量rd,在此变量上加一个向前的力,最终就实现了功能。

if(Input.GetMouseButtonDown(0))
{
  GameObject balls = GameObject.Instantiate(ball, transform.position, transform.rotation);
  Rigidbody rd = balls.GetComponent<Rigidbody>();
  rd.velocity = Vector3.forward * 30;
}

4.测试

实现上述所有功能后,运行游戏进行测试,测试结果如下图,无误。

 三.总结

1.想要开发一个unity游戏,首先要熟悉引擎,了解引擎的设置和功能。unity里设置种类繁多,功能复杂,学习起来知识点比较碎片化,因此一定要有相关的书籍,并做好笔记,在看书不能理解的同时可以在网上看看教程。

2.在编写脚本时,往往需要配合组件,有许多不清楚的组件或者不知道代码如何实现,可以去unity官网,下载unity中文APl手册,这是我们学习unity及脚本必不可少的。

3.在unity中,可把游戏对象理解为容纳各种组件的容器,开发者写的每一个脚本可理解为一个自定义的组件,游戏对象的所有组件都可理解为对象的行为。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值