unity入门—五分钟制作一个理论上的游戏
unity入门
前言:这可不是标题党,虽然都是基础的操作,不过含括了基本的流程,比起脑海中的五花八门的画面,入门还是这个现实一点。
这里插两句,unity国外官网下载会推荐你看一个简短的视频,国内官网下载没有不过可以另外找到,推荐看一下,相当的好,当初的我刚看完就激动的不行,准备做个惊世之作时,被自己的基础不足问题泼冷水。
任务:使用unity完成一个Hello World程序,创建一个标准的Windows可执行程序。
1.外部工具设置
下载VS(我用的vs2017,用自带的也行,为了方便之后学习建议VS,挺好用的),下载VS(Visual Studio)中的unity组件,安装完成后,在unity编辑器的菜单栏中选择【Edit】-【首选项】打开设置窗口-【外部工具】
将外部脚本编辑器设置为VS(软件安装下载就不截图了,如果有什么问题的可以留言或者联系我,定尽力帮忙)

2.编写脚本
启动unity,创建一个新工程,在Project窗口选择Assets,右击并选择【创建】-【C#脚本】创建一个新的C#脚本,将脚本命名为HelloWorld.cs

双击打开HelloWorld,添加代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class HelloWorld : MonoBehaviour
{
// Start is called before the first frame update
//在这里初始化
void Start()
{ } // Update is called once per frame
//在这里更新逻辑(每帧)
void Update()
{ } private void OnGUI()
{
//改变字符大小
GUI.skin.label.fontSize = 100;
//输出文字、如果文字是中文,脚本文字编码必须保存为UTF-8
GUI.Label(new Rect(10, 10, Screen.width, Screen.height),"Hello World");
} }
这里一定要注意脚本的类名与文件名一致,就是public class后面那一串,我第一次创建名称为Hello World,就是两单词间有个空格,但是进入之后默认代码是没有空格的就导致了错误,一定要注意类名与脚本名。
HelloWorld.cs是一个unity的脚本文件,HelloWorld是类的名称,它继承自Unity的基类MonoBehaviour。注意,Unity没有Main函数程序入口,Unity脚本必须作为组件依附于Game Object(游戏体)运行,因此不能使用new创建Unity脚本实例,构造函数的功能也受到限制。
3.Main Camera
回到编辑器,在层级窗口中选择【Main Camera】,选中摄像机,在菜单栏中选择【Component】-【Scripts】-【HelloWorld】,将脚本指定给摄像机,也可以直接拖动脚本到main camera上

4.运行游戏

程序是搞定了,不过东西还没个谱呢,接着往下。
5.编译输出
【文件】-【save】-【文件】-【另存为】,保存前记得先退出播放模式,就是把那个播放键再点一下就行,将当前关卡保存在Assets目录,这是一个后缀名为.unity的场景文件。下面也是显示两个文件,一个脚本文件,一个关卡文件。

在确保关卡打开状态下,【文件】-【Build Settings】,打开窗口,点击【添加已打开场景】,也可将关卡文件直接拖入,在【玩家设置】中把产品名称改为Hello World。


然后就是大家熟悉的build and run ,建议单独开个文件夹存放,至此,一个理论上的游戏就完成了,打开画面就不截图留给各位刚入门的同学自己去欣赏了。虽然简陋不过基本流程齐全,最开始的我打开自己写的Hello World程序,就被开头那个固定的Made With Unity画面惊艳到了,虽然内容贫乏还没有退出功能,不过第一个程序的诞生也点燃了游戏制作的心,希望之后有一天也能制作出许多人认可的好游戏。
下一篇文章就会讲解unity编辑器中的一些基础知识,类似于脚本基础,内置函数含义,程序调试等。
2020-12-09
unity入门—五分钟制作一个理论上的游戏的更多相关文章
- 制作一个塔防游戏 Cocos2d-x 2.1.4 (一)
在这篇文章,将会学习到怎样制作一个塔防游戏.在这其中,学习怎样在设定的时间内出现一波波的敌人,使这些敌人沿着指定的路点前进.怎样在地图上指定的位置创建炮塔.怎样使炮塔射击敌人,怎样可视化调试路点和炮塔 ...
- 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用
URLOS开发者功能已上线有一段时间了,目前通过部分开发者的使用体验来看,不得不说URLOS在服务器软件开发效率方面确实有着得天独厚的优势,凭借docker容器技术与其良好的应用生态环境,URLOS必 ...
- python scrapy 入门,10分钟完成一个爬虫
在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...
- 五分钟搭建一个基于BERT的NER模型
BERT 简介 BERT是2018年google 提出来的预训练的语言模型,并且它打破很多NLP领域的任务记录,其提出在nlp的领域具有重要意义.预训练的(pre-train)的语言模型通过无监督的学 ...
- 怎样用HTML5 Canvas制作一个简单的游戏
原文连接: How To Make A Simple HTML5 Canvas Game 自从我制作了一些HTML5游戏(例如Crypt Run)后,我收到了很多建议,要求我写一篇关于怎样利用HTML ...
- [译]怎样用HTML5 Canvas制作一个简单的游戏
这是我翻译自LostDecadeGames主页的一篇文章,原文地址:How To Make A Simple HTML5 Canvas Game. 下面是正文: 自从我制作了一些HTML5游戏(例如C ...
- 制作一个 JavaScript 小游戏
简评: 作者学习了编程两个月,边学边做了一个 JavaScript 小游戏,在文中总结了自己在这个过程中的一些体会,希望能给其他初学者一些帮助. 对于很多想学编程但一直没下定决心的同学来说,最大的问题 ...
- 使用pygame制作一个简单的游戏
翻译自Will McGugan的<Beginning Game Development with Python and Pygame –From Novice to Professional&g ...
- 用cocos2d 2.1制作一个过河小游戏(4): 游戏主逻辑BaseLayer设计
前段时间一直在忙.没有时间更新博客.今天还是抽点时间把最后一小部分游戏的实现放上来吧. BaseLayer.h: #import <GameKit/GameKit.h> #import & ...
随机推荐
- socket里面那个又爱又恨的锁
查一个问题:结果看了一下软中断以及系统 所耗cpu,心中满是伤痕啊------- perf 结果一眼可以看到:主要是锁 那么这个lock 是用来干什么的呢?? A:TCP socket的使用者有两种: ...
- MySQL架构(面)
和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用.主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离.这种架构可 ...
- 幻读在 InnoDB 中是被如何解决的?(转)
在MySQL事务初识中,我们了解到不同的事务隔离级别会引发不同的问题,如在 RR 级别下会出现幻读.但如果将存储引擎选为 InnoDB ,在 RR 级别下,幻读的问题就会被解决.在这篇文章中,会先介绍 ...
- Lamport面包店算法详解(转 侵删)
范例1: boolean choosing[n];表示进程是否在取号 int number[n];记录每个进程取到的号码 这些数据结构分别初始化为false和0,为了方便,定义如下符号: 若a&l ...
- 支持jewel版本的calamari
之前测试了下,发现calamari不支持jewel版本的,是因为接口了有了一些变化,在提出这个问题后,作者给出了回答,说肯定会支持的,并且做了一点小的改动,就可以支持了,这个作者merge了到了git ...
- 3、Spring Boot日志
1.日志框架 市面上的日志框架:JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j.... 日志门面 (日志的抽象层) 日志实现 JCL(Jakarta ...
- Linux Shell 错误: $'\r': command not found错误解决
在Linux下执行程序最省事的方式就是将系统的执行流程封装成一个shell脚本,上传到linux环境中后就可以直接执行了,但是今天在具体实施的时候出现了错误 $'\r': command not fo ...
- python中的unittest库
1.unittest框架是python自动化测试的入门框架,它是python自带的一个模块 包含以下几个子模块 测试用例:TestCase 测试集:TestSuite 加载用例:TestLoader ...
- objetive-C中属性变量和成员变量
属性变量 @property和@synthesize可以自动生成某个类成员变量的存取方法. readwrite:这个属性是默认的情况,会自动生成存取器 assign:这个属性一般用来处理基础类型,比如 ...
- Linux 学习笔记05丨在Ubuntu 20.04配置FTP服务器
感谢 linuxconfig.org 上的这篇英文教程 FTP用于访问和传输本地网络上的文件,通过安装 VSFTPD 软件,打开热点,配置相关信息后即能够启动并运行FTP服务器了. 1. 安装和配置V ...