小白学习Unity 3D做经典游戏坦克大战日常

老师 | Trigger

学习者 |小白

出品 | Siki 学院

Hello,小伙伴们。接下来小白跟Trigger老师做一款2D游戏坦克大战。从素材、代码到场景和UI的游戏开发。小白把日常遇到的问题做一个记录贴,让各位小伙伴充分了解Untiy 3D基本游戏开发和一些小白容易疏忽的问题。Unity 3D有着非常便利的管理和编码功能。现在非常热门的MOBA游戏王者荣耀,也是用Unity 3D 开发的呢!用其他编程语言例如: java / kotlin 和 Object-C / swift 原生游戏的开发是非常耗时耗力的,并且在一些细节问题上不容易处理。

废话少说,一起燥起来吧~

首先需要准备:

Untiy 3D版本**:2017版本以上
学习非常简单,不会的话,参考SiKi学院的视频。

还需要掌握计算机语言:C#,非常简单,如果你还年轻,对现在工作感到不理想。想学习一门技术这个是你不二选择。

下面小白就从日常遇到的问题做个记录。

**控制坦克玩家移动代码**:
```javascript
public class Player : MonoBehaviour {

public float moveSpeed=3;

void Update()
{
//监听水平方向
float h=Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right*h*moveSpeed*time.deltaTime,Space.wrold);
float v=Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up*v*moveSpeed*time.deltaTime,Space.wrold);
}
}

问题1:GetAxis 和GetAxisRaw的区别?
Input.GetAxisRaw 获取原始轴
通过坐标轴名称返回一个不使用平滑滤波器的虚拟坐标轴;

Input.GetAxis 获取轴
根据坐标轴名称返回虚拟坐标系中的值;

共同点:
这两种方法都是用来取得轴向值的,两种方法的最大值和最小值都是1和-1.

不同点:
使用Input.GetAxis,在刚开始按下W的时候取得的值会从0到1慢慢递增:exp:0-0.133-0.33-0.672-0.851-1.0;
放开就有递减的效果,这种方法可以产生变化感,有加速和刹车的感觉;

使用Input.GetAxisRaw,取得的值永远只有三种-1,0,1;在按下W取得值会从0变成1;

问题2:Transform.Translate 平移
简单的说,向某方向移动物体多少距离;

原文地址:https://www.cnblogs.com/dingsiki/p/9997833.html

时间: 2024-11-07 18:18:55

小白学习Unity 3D做经典游戏坦克大战日常的相关文章

Unity 3D正在革命游戏开发市场

转自知乎 [高风险的大型游戏开发] 传统上来说,开发游戏是一件费时费力的事情,而且80%的情况下开发游戏这件事就是一个灾难.因为游戏是一个交互艺术,这个交互不仅体现在娱乐方式上,也体现在开发过程中.修修补补是开发游戏的家常便饭.但是,由于传统的游戏开发至少涉及策划.美术和程序,因此任何一点微小的调整都需要各个环节通力合作才能勉强达成.而游戏的品质如何,往往要到最后开发出来一个版本才能看到.这时,项目往往已经开发到50%以上的进度了,无论做什么调整,都意味着巨大的先期投入. 然而幸运的是.虽然开发

[Unity 3d]荒岛逃生游戏制作

这是我和一名同学一起制作的<Memory Island>荒岛逃生小游戏.第一次使用Unity 3D实现,游戏过程和场景都不复杂,不过是一次很有启发也颇具成就的尝试!谢谢师哥辅导! 游戏内容很简单:玩家以第一人称视角根据线索找到金.银钥匙,寻找路线,打开各种门,找到小船,便可逃离荒岛. 在此我介绍制作思路,其中附上部分基础代码,最后演示游戏过程! 一.制作过程 1. 首先,我们在unity 3d中建立荒岛模型:树.草.土丘等,搜寻箱子.钥匙.木屋.石像.船等素材放置在岛中. 设置了天空盒材质:M

汉顺平html5课程分享:6小时制作经典的坦克大战!

记起自己去年參加的一次面试,在做过Java多年的面试官面前发挥的并不好,但他一听说我会html5,立刻眼睛发亮.无论不顾的想要和我签约.. .所以.如今为工作犯愁的朋友们,学好html5,绝对会为你找到好工作加入重要砝码. html5 大致是 (html+css3+javascript apis).一句话: html5 支持了css3 的强大的选择器和动画等功能+ 支持javascript 非常多新的函数.所以html5就非常强大了. 所以在此特意韩顺平老师的html5课程-6小时编写经典坦克大

Unity 3D 中新建游戏物体过程中 Intantiate Transform 空物体和本体之间的关系

我们通过Unity构建场景的过程中,经常发现一个现象,就是物体在拖进场景中后,我们会发现物体是反的,通过改变物体的rotation属性后,得到了正确的方向,可物体的坐标系又变得和默认坐标系(右上角系统自带的坐标系)不一样了,这样就给后续的脚本工作(通常是控制(Transform)脚本和生成(Intantiate)脚本)带来了困扰,因为脚本写作的过程中是按照正常的坐标系来的,物体的脚本和默认的不一样了就会出现诸如按下键物体向上的现象. 其实,在游戏场景的创建过程中,不仅仅是物体的方向,一个游戏物体

Unity 3D酷跑类游戏场景循环

Unity 3D酷跑游戏场景循环 ////////////////2015/07/05///////////// ///////////////by xbw//////////////////// ///////////////环境 Unity4.6.1////// 经过一上午的学习与实验,终于实现了3D酷跑游戏的场景循环..大喜.遂分享交流,共同学习. 在场景中建两个Plane作为地面,分别命名为Plane1,Plane2: Position 分别设为0,0,50:0,0,150: Scale

Unity 3D入门简介

最近在刚开始学习Unity 3D,在这里记录一下学习心得和学习笔记,边学边写,可能会比较零散.好了,废话不多说,今天从Unity 3D入门写起,主要简要介绍一下Unity 3D的和一些学习资料.以下如果不作特别说明,均是指Windows平台的Unity 3D,版本是4.5.1f3. Unity 3D是一款游戏开发引擎,目前支持2D和3D游戏的开发,其最大的优势就是跨平台性非常好,可以很容易的将PC端制作的游戏移植到Android.IOS等移动平台,当然也可以创建网页游戏.刚开始进行Unity 3

unity 3d yield 用法总结

最近,需要需要用unity 3d做点东西,但是了碰到了延迟加载问题,我总结余下: Coroutines & Yield是unity3d编程中重要的概念,它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行,但是在Javascript与C#中实现Coroutines & Yield,在语法上却有一些区别: javascript中yield用法很简单,直接yield就行了,或者yield WaitForSeconds (2); c#中的用法如下: yield不可单独使用 需要

Unity 3D之使用GameObject创建简单的可移动的对象

在Unity 3D上开发游戏,需要游戏脚本与3D建模相结合,将写好的脚本拖曳到3D对象里从而实现效果. 下面是一个小实例,使用Unity 3D实现一个可控制移动的小人,小人可以向前.向后.向左和向右移动. 1.通过 File - > New Scene 创建一个场景: 2.点击Create -> Create Empty 创建一个GameObject,它即是游戏对象: 3.在Inspector 面板里将此对象的名字改为 "hero" (记得按回车键),等一下再脚本中将通过此

【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件

常用编辑器组件 unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成.常用的编辑器可分为两种:原有组件和拓展组件.原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能. 摄像机 摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示.摄像机组件的参数如下: clear flags:背景显示内容,默认的是skybox.前提是必须在render settings 中设置天空盒子材质. background:背景显示颜色,如果没