【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#中极为重要的一个内容,学好了将会及大地减少我们的代码量,而且这也是够 ...
随机推荐
- 表单的子元素可不在form标签内
表单是网页用于向服务器发送数据的元素.其用法类似下面: <form method="POST" action="/login"> <input ...
- Anaconda环境搭配(Ipython)-获得jupyter notebook(适用Win10)
关于如何下载anaconda并获得jupyter notebook的随笔. 首先下载anaconda,然后下载完成后,如果是win10系统,则通过下图的放大镜搜索Jupyter Notebook 会有 ...
- 浅谈HTTP缓存与CDN缓存的那点事
HTTP缓存与CDN缓存一直是提升web性能的两大利器,合理的缓存配置可以降低带宽成本.减轻服务器压力.提升用户的体验.而不合理的缓存配置会导致资源界面无法及时更新,从而引发一系列的衍生问题.本文将分 ...
- 记一次mybatis性能问题分析过程
说明 今天发现个2个问题,一是mybatisplus执行一条某个字段值比较长(约1.8M的文本)的INSERT语句耗时要90s+;二是读取这个1.8M文本返回给前端耗时6min.查查查查了半天搞不清楚 ...
- DHorse的链路追踪
目前,DHorse的链路追踪功能是通过SkyWalking来实现.实现原理是DHorse在部署应用时,通过指定SkyWalking的Agent来收集服务的调用链路信息.下面就来具体看一下DHorse如 ...
- apache文件工具类的使用:org.apache.commons.io.FileUtils
说明 org.apache.commons.io.FileUtils 工具类包含了许多操作文件的方法,此文章介绍一些常用的文件操作方法,方便使用的时候查阅参考 创建输入流 public static ...
- pyqt5制作俄罗斯方块小游戏-----源码解析
一.前言 最近学习pyqt5中文教程时,最后一个例子制作了一个俄罗斯方块小游戏,由于解释的不是很清楚,所以源码有点看不懂,查找网上资料后,大概弄懂了源码的原理. 二.绘制主窗口 将主窗口居中,且设置了 ...
- LeetCode HOT 100:最大子数组和
题目:53. 最大子数组和 题目描述: 给你一个整数数组,在该数组的所有子数组中,找到一个子数组中所有元素相加和最大,返回这个最大的和.子数组就是一个数组中,由一个或几个下标连续的元素,组成的小数组, ...
- DSS+Linkis Ansible 单机一键安装脚本
DSS+Linkis Ansible 单机一键安装脚本 一.简介 为解决繁琐的部署流程,简化安装步骤,本脚本提供一键安装最新版本的DSS+Linkis环境:部署包中的软件采用我自己编译的安装包,并且为 ...
- 使用APICloud AVM多端组件快速实现app中的搜索功能
很多 APP 中都有搜索功能的需求,本文介绍怎么使用 avm 多端组件快速实现搜索功能. 在 APICloud 模块库搜索 animate-UISearchBar,添加到项目.多端组件需要下载源码,引 ...