【unity萌新第一步】Unity的Hello World(适合小白)
Unity萌新的第一步:使用unity写第一个Hello World
IT界有个笑话:“我擅长用各种语言写Hello World”。我讲这个笑话的目的是,指出:写一个HelloWorld程序可以带你迅速的了解一下这门语言的语法特点。
而我本人也是个刚学不久的萌新,在空白到入门阶段痛苦了很久。直到前两天跟着一个教程又走了一遍新手教程才恍然大悟,为了避免后人和我一样在门口兜兜转转找不到门,我写这么一个教程。
在这个教程中,我将带你从打开unity开始,写三个hello world程序,让你感受一下unity的使用逻辑,以此开启以后的学习。
———————————————————————————————————
好,我们开始。
搭建环境部分我跳过了,需要的材料有:unityHub(可选,推荐);unity(必备);visual studio(可选,推荐);vscode(与vs二选一,至少有一个)。没有搭建的去找搭建教程。
然后,我们第一次打开unityHub,长这样:
(我用的Windows自带的画图打码的,不要在意hhh)
如果你还没安装过unity,点“安装”栏去安装一个,这里不过多叙述。安装好后,我们点新建。
模板我们就用默认的最普通的3D,文件名改一个自己喜欢的,地址自己找个地方,然后点创建。然后等一段时间等它创建完。
创建完成之后,我们进入了unity,哪里都不认识没关系,哪里都别动,教程完后既然就会认识了。
我的unity是找插件汉化过的,萌新的没汉化过应该是英文的。不过我不推荐汉化,看我的教程把各种词对应一下就行了,别的教程都是英文的。
我的一进来默认下方窗口是控制台,我得把它切成项目。
现在应该对了。
如果布局不一样的话,看见最右上角那个layout了没?把它改成layout应该就一样了。
然后我们正式开始干活。
最左边这个窗口叫“层级”,里面已经有两个东西了,先不用管。我们在上面空白处点右键一下,然后在3D对象里找一个cube(立方体),创造一个方块。
创好之后,现在层级窗口里应该有三个东西了,我们解释一下:
MainCamera是主摄像机,它有个视野,它所看到的东西就是你游戏打开后你的屏幕显示的东西,比如面前的怪物,它视野以外的东西就是你游戏打开后屏幕以外的东西,比如说背后的怪物。
Directional Light是你的平行光源。
在虚空中,一切都是暗的,然后程序员说:“要有光!”于是就有了光。
好吧我说人话,这个光源就是照亮你的游戏物体的东西,然后摄像机才能把被照亮的东西拍下来。否则东西很暗,黑糊糊的一片没法玩。类比的话,房间里不需要灯泡你也能在黑暗里(凭触觉)搭建你的小城堡,但是想要把它拍下来给别人炫耀,那就必须用光照着它才行。
第三个东西就是我们的cube方块了,刚刚新建的。
现在,我们给方块改个名。你可以右键它然后重命名,不过我习惯F2快捷键改名,看个人习惯吧。我们给方块改名成HelloWorld。
改好之后,我们就运行起来看看。点击上方的播放键按钮预览游戏。
哒哒!我们看到窗口里有个方块,这个方块就是我们刚刚创造的HelloWorld。
也许你会说:你逗我玩呢吧?这明明只是个方块=.=
别急啊,总共有三个hello world呢,这是第一个,后面两个就对了。
再点一下播放键关闭预览模式。
现在我们选中方块,然后添加一个组件(add component)。
这里可以理解为,给它一项本事。比如我们给一个人一项“教学”的本事,然后它就可以当老师。我们给一只狗狗一项“导盲”的本事,它就可以当导盲犬。现在,我们要给这个方块一项本事,让它有意义。
我们要add的component是一个新脚本(New script),这样就能用写代码的方式教它本领了。
然后我们给这个脚本起个名字,随便什么都好。我写的My Script。
成功添加后,我们看到多了一个脚本文件,方块也多了一个组件。
然后我们单击它一下可以观察脚本,屏幕右边
现在我们要编辑它了,双击脚本进入编译环境(IDE)。
vs打开后,我们看到脚本是这样的:
我们现在要教给这个方块说hello world的本领。所以我们这样写:
注意:在void start函数里面写,这个函数是当我们启动游戏时会运行一遍的初始化函数。写在这里很合适。
print就是打印函数,引号中间的就是打印内容。
写好后CTRL+S保存
一切完成后,我们再播放一下:
控制台提示:hello world!
也可以点进控制台看(点击绿箭头)
这就是第二个hello world。
但是这两个都没显示在屏幕上啊?
嗯。所以我们来做第三个。
层级窗口,右键,新建一个UI,Text(文本)。这里我就懒得重命名了,就默认的挺好
然后我们发现多了个canvas,点开里面有我们刚刚建的Text。还多了个EventsSystem,这个不讲了,略复杂。我们双击Text,就能在窗口里定位这个文本框。
但是有个问题,这个文本不是在屏幕中心显示的,我们需要在右边窗口transform(转换)那里右键,重置。然后可以看到文本的xy坐标就都归零了。当然,手动改也没问题。
现在,我们再给方块加个功能,这个功能是:让text文本的文字内容改为“hello world”。
打开刚刚的脚本,编写以下代码:
这新加的三句分别是:
using UnityEngine.UI;
调用我们需要的库。
public Text Text1;//MyText aaa dfineisrgia 都可以
向unity索要一个text文件拿来用,在使用过程中我们称它为Text1。(起名随意)。
Text1.text = "Hello World!";
让text1的文本(text属性)改为hello world。
完成后,保存,然后回去看unity。
我们刚刚的代码的第二条是向unity索要一个text,现在我们让unity给它提供一个text。点击方块,发现脚本多出来了一个接口正在索要text,现在是空的。我们就把刚才新建的Text拖过去,那么我们的脚本控制的text1就是我们刚刚新建的text了。
添加完成后长这样:
一切妥当!点击播放试试!
hello world!
【完】
(生成导出就不教了吧,这么个东西也不值得导出啊。。。)
【unity萌新第一步】Unity的Hello World(适合小白)的更多相关文章
- Unity萌新日记—开发小技巧与冷知识(脚本篇)
在学习unity的过程中,总会遇到很多零碎的知识点和小技巧,在此把它们记录下来,方便日后查看. 第一篇是关于脚本的一些你可能不知道的小知识. 还是个正在学习的萌新,如果写的不好,请谅解. Unity版 ...
- Unity 黑暗之光 笔记 第一章
第一章 设计游戏开始进入场景 1.设置相机视野同步 选中要调整的相机 GameObject - Align With View(快捷键 Ctrl + Shift + F)
- 面对一个新的MCU,我再也不敢说第一步是点灯了
折腾了几天AT91SAM3S,今天才算是把开发板上的3个LED点亮. 在点亮之前,起码看了百八十页的Datasheet,动用了N次百度. 各种时钟,看门狗,分散加载,中断向量,都得去整.这些都远远超过 ...
- Unity3D_05_理解Unity的新GUI系统(UGUI)
理解Unity的新GUI系统(UGUI) Unity GUI 链接:UnityEngine.UI系统基础类架构图 Unity GUI 链接:UnityEngine Event & Event ...
- Eclipse新项目检出后报错第一步:导入lib中的jar包【我】
新检出项目报错,第一步,先看项目 web-info下的 lib目录里的包是不是都添加到项目构建中了,可以全选先添加到项目构建中,看项目是否还在报错.
- 重制AdvanceWars第一步 -- 搞定地图
首先来聊下高级战争吧Advance Wars,由任天堂旗下的Intelligent Systems开发的战棋游戏.初作诞生于GBA上,后来继续跟进了高战2黑洞崛,而后在下一代掌机DS上也出了三代续作高 ...
- [EntLib]微软企业库5.0 学习之路——第一步、基本入门
话说在大学的时候帮老师做项目的时候就已经接触过企业库了但是当初一直没明白为什么要用这个,只觉得好麻烦啊,竟然有那么多的乱七八糟的配置(原来我不知道有配置工具可以进行配置,请原谅我的小白). 直到去年在 ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(二)(插入、查找、导入、导出)
萌新做词典第二篇,做得不好,还请指正,谢谢大佬! 做好了插入与遍历功能之后,我发现最基本的查找功能没有实现,同时还希望能够把内存的数据存入文件保存下来,并可以从文件中导入词典.此外,数据的路径是存在配 ...
- Unity教程之再谈Unity中的优化技术
这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体 这一步主要是为了针对性能瓶颈中的”顶点 ...
- 萌新关于C#委托一点见解
开博第一写C#委托(一个简单的委托) 1.关于委托,一直是学习c#的萌新们的噩梦,小生也是.最近在学委托感觉瞬间被虐成狗,但作为C#中极为重要的一个内容,学好了将会及大地减少我们的代码量,而且这也是够 ...
随机推荐
- css文字垂直展示的方法
一.使用writing-mode(推荐使用) writing-mode:翻译过来是"写字 - 模式",文本在水平或垂直方向上如何排布 有以下几个属性值: horizontal-tb ...
- IOT黑客入门篇之初探Badusb
什么是Badusb? BadUSB是一种使用带有恶意软件编程的USB设备的计算机安全攻击.例如,USB 闪存驱动器可以包含可编程的Intel 8051微控制器,该微控制器可以重新编程,将USB闪存 ...
- day01-计算机的本质
计算机的本质 计算机又称为"电脑": 通电的大脑 意味着我们人类希望计算机通电之后可以跟人脑一样思考问题.解决问题 计算机存储数据的本质 计算机是基于电工作,而电信号只有高低电平两 ...
- orcl substr函数与java substring 的不同
前天事情急改一个存储过程时遇到了substr方法时,一直用好,然后用其他方法跳过去了,今天有时间回头来验证 才发现和java太不一样了! select substr('为中华之崛起而读书',2,4) ...
- day32 6 请求转发与重定向的区别、session会话对象 & cookie & 8 应用程序上下文对象ServletContext & 5 请求转发与jsp页面内置对象
1 请求转发与重定向的区别 2 session与cookie的区别 3 过滤器与监听器的区别 4 web-inf目录 web-inf目录是安全目录,无法从客户端访问,只能通过(服务端的)servlet ...
- Zabbix技术分享——使用Zabbix6.0监控业务日志
企业日常IT运维过程中,常会碰到需要监控业务日志的情况,以下将介绍如何使用Zabbix6.0监控业务日志. 应用场景描述: 企业IT运维部门使用自建zabbix平台对公司某业务系统进行了监控.近段时间 ...
- go-carbon 1.5.0 版本发布,修复已知 bug 和新增德语翻译文件
carbon 是一个轻量级.语义化.对开发者友好的golang时间处理库,支持链式调用. 目前已被 awesome-go 收录,如果您觉得不错,请给个star吧 github:github.com/g ...
- C++面向对象程序设计期末复习笔记[吉林大学](结合历年题速成85)
1.头文件 头文件的作用就是被其他的.cpp包含进去的.它们本身并不参与编译,但实际上,它们的内容却在多个.cpp文件中得到了编译.根据"定义只能一次"原则我们知道,头文件中不能放 ...
- redis集合 实现 队列
先说一下需求:用队列解决 流量削峰,主要应用场景:商城秒杀功能. 以下是业务流程图可以参考一下: 然后本地实现思路 截图下单页面 每次购买数量会减少1,设置了1000个库存,用户id 是随机生成的. ...
- excel甘特图制作
1.插入图表 1 1.选中数据区域(3列,如图所示)--点击插入--推荐的图表--堆积条形图 END 2.甘特图制作 1 2.点击图表工具--设计--选择数据. 轴标签区域改为--确定项目.. ...