第一个Unity程序--01 HelloUnity

Unity学习笔记(二)——第一个Unity项目Hello Unity 在这一篇文章里,参照宣雨松的《Unity 3D游戏开发》第38页的例子,用C#写出我的第一个Unity项目 Hello Unity。 第一步,新建项目: 点击“Create Project”创建项目之后,我们看到项目中只有一个摄像机对象“Main Camera”。 并且Unity为我们创建了一个未命名(untitled)的场景,点击“File -> Save Scen 阅读详情

目录:

  1. 简要介绍一下Unity开发工具
  2. 如何使用Unity
  3. 新建一个项目,并在控制台输出Hello Unity
  4. unity的文件系统

项目源码:ch01_HelloUnity
Unity版本:2018.3.3f1
系统版本:macOS 10.13.1

正文:

1、Unity开发工具的特点

优势:

  • 提供了极度高效的可视化工作流
  • 多维度的跨平台支持(几乎一键可以发布到现在任何主流平台)
  • Unity使用模块化组件系统构造游戏对象(与继承不同)
    缺点:
  • 混合使用可视化编辑器和复杂的代码,产生了大的复杂度。
  • Unity不支持链接额外的代码库。
  • 必须使用预设(prefab)。
2、如何使用Unity

在打开Unity3D后的第一章的工程后,我们可以看到这个界面
在这里插入图片描述
Unity中的界面被划分为不同的部分:Scene、Game、工具栏、Hierarchy、Inspector、Project和Console。每部分都有不同的用途,它们在构建游戏生命周期中都很重要。这里是官方的视频介绍,强烈推荐看一下:
https://unity3d.com/cn/learn/tutorials/topics/interface-essentials/unitybian-ji-qi-jie-mian-jie-shao

3、新建一个项目,并在控制台输出Hello Unity

Unity中所有的代码的执行都从链接到对象的代码文件开始。游戏对象是有组件集合构建而成,而这些集合能包含要执行的脚本。
这个项目的具体的步骤只需要3步
1、创建一个HelloUnity的C#脚本:从Assets菜单的create菜单中选择C# script。双击HelloUnity脚本打开。
并输入以下代码

//System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。
using System.Collections;  
//System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。
using System.Collections.Generic;
//导入unity引擎程序的命名空间
using UnityEngine;

public class HelloUnity : MonoBehaviour //继承unity脚本的基类
{
    // Start is called before the first frame update
    void Start()    //游戏开始的时候执行
    {
        Debug.Log("Hello Unity");
    }

    // Update is called once per frame
    void Update()   //游戏每帧运行的代码
    {
        
    }
}

2、选择GameObject|Create Empty,在Hierarchy列表中将出现一个空的GameObject。
3、从Project视图将脚本拖到Hierarchy视图并放置在那个空的GameObject上。下图是将脚本组件添加给物体后的物体Inspector视图。
在这里插入图片描述
最后你单击play按钮后,你可以看到控制台,打印出了Hello Unity的文本。恭喜你,你已经完成了自己第一个Unity项目了。

这里要提一下,在Unity 2018.1中,仅将Visual Studio for Mac作为MacOS上的唯一C# IDE。也就是说现在我们不能使用MonoDevelop,这个跨平台的IDE了。

以下是官方公告:
现在与Unity一同发行的MonoDevelop-Unity 5.9.6并不支持最新的C#特性,并且也不支持在Unity的.NET 4.6脚本运行时中调试C#脚本。为此我们将做出二项改变。

  1. 在MacOS和Windows上,移除Unity 2018.1中的MonoDevelop-Unity 5.9.6安装程序,并从Unity 2018.1开始,不在支持使用它进行Unity开发。
  2. 在Unity 2018.1中,仅将Visual Studio for Mac作为MacOS上的唯一C# IDE。在Windows上,我们将继续保留Visual Studio 2017 Community,并不再将MonoDevelop-Unity作为可选项。
    公告链接:http://forum.china.unity3d.com/forum.php?mod=viewthread&tid=30156&extra=page%3D3%26filter%3Dtypeid%26typeid%3D4

如果你熟练的使用VS调试的话,可以看看官方文档:
这里是使用VS调试项目的官方教程:
Visual Studio Tools for Unity ,在 Unity 编辑器中调试:
https://docs.microsoft.com/zh-cn/visualstudio/cross-platform/using-visual-studio-tools-for-unity?view=vs-2017

4、从新建工程中查看unity文件系统

在这里插入图片描述
新建工程后,在项目文件夹下面一共有六个文件夹(如果关掉Unity的话Temp文件夹就消失了)。下面介绍一下这六个文件夹:

Assets:资源;主要是所有的 C# 文件和任何其他游戏的objects,例如 3D 模型、 2D 纹理和声音的会在在此目录中的某个地方。如果文件不位于此目录中,你的游戏不能访问它。往往当一个项目更大,它的一个好的想法是在这里有条理的创建一些子目录。这些不同的文件组织是取决于你,但大多数情况下,不同的类型在不同的目录下。所有游戏资源全都放在这个目录下,包括脚本、纹理、声音、自定义编辑器等。这是工程中最重要的文件夹。

Library:库文件;重要Assets的本地缓存,不用放在版本控制中。此属性包含unity3D 使用配合资产(tie assets)和逻辑一起在scenes的引用关系。这里还放置您设置的editor preferences、 platform settings和游戏引擎需要的许多其他设定。用户需要去这里做出任何修改是非常罕见的,所以最好是避免摆弄此目录的内容。

ProjectSettings:项目设置;存放工程设置。包括物理、标签、玩家设置等。换句话说,你在菜单Edit → Project Settings中做过的所有设置都放在这个目录下。

Temp:临时文件夹;unity运行过程中生成的临时文件。obj是VS用的,Temp是unity用的。 数据缓存(Data caches),写入临时文件和其他操作系统维护相关的东西就扔到 Temp 目录。Unity3D 是一个复杂的系统,由许多不同的组件组成。一切都很好,一起流动还有大量的临时工作。

Logs:存放logs文件;

Resource文件夹,用于在运行时加载资源。使用Resource.Load(“path”)的方式加载,简单方便。
但是尽量不要使用它,
1:它使内存管理变得困难;
2:不恰当的使用Resource文件夹,会增加程序启动时间和打包时间;
3:降低了工程中的内容转换到特定平台的能力,使内容更新困难

Library,ProjectSettings 和 Temp 的目录之间,我们有许多Unity3D 生成关于其自身的附加物。这不是像很多其他的编程环境。缓存文件、 调试文件和中间资源往往会堆积在即使是最简单的编程项目。我们只需要关注的是资产Assets目录。

在编写完,并运行项目过后文件夹增加了,下面我们介绍一下增加的文件夹中的内容:
在这里插入图片描述
.meta文件:当你在场景中引用一个资源(asset)时,unity不使用名字或路径,而用一个全局唯一的GUID来指向工程中的资源。这个GUID就放在meta文件中,unity会为Assets目录下的所有文件夹和资源文件生成一个meta文件。
GUID有优点也有缺点
优点:移动、重命名、改动资源文件,都对GUID没有影响,GUID还是指向这个资源文件。
缺点:注意不要随意删除资源文件相关的meta文件。如果删除了meta文件,unity会认为原始的资源文件被删除了,并给此资源重新生成一个新的GUID。这就是为什么有时候场景中资源的引用会突然断开。
除了GUID,.meta文件还有重新导入资源的信息。比如纹理资源可设为以标准纹理、普通地图、GUI纹理、cookie、纹理、光照贴图导入。这些导入设置是放在meta文件中的。
obj:Unity运行过程中生成的临时文件。obj是VS用的。
.sln: 解决方案文件(solusion)
.csproj: c sharp project C#工程项目文件

小结
  • Unity是一个多平台的开发工具
  • Unity的可视化编辑器包括可以协同工作的几部分。
  • 脚本是作为组件附加到对象上的。
  • 代码是使用Visual Studio for Mac编写的内部脚本。

参考资料:

【unity3d】unity3d第一个项目  打开unity3d之后,进入如下场景 点击new之后新建一个项目,如果是要打开原来已经存在的文件,则应该点击open 第一个是输入projectname,也就是项目名称,locaton也就是项目保存的路径,需要安放在预先建立的文件夹里面,第三个不用去管,然后在左侧选中3d模型的建立,点击create project即可完成创建。 进入之后是这样的场景 当前的场景是Untitl... 阅读详情

相关推荐

Unity学习过程(二)——创建第一个工程

1.首先打开unity,我这里的是unity5.2.3f1版本。不过基本功能界面,unity5都是一样的~ 2.然后在打开的的unity程序中选择new,这里面有供3D与2D开发的选择~还可以导入标准包下的资源。默认unity5的标准包不在安装包里(换句话说就是unity5.x安装包不像unity4.x默认内置有标准资源包~需要自己去官网下载。下载网址http://unity3d.com/cn/

神风飘月の博客 4546

Unity3d开发的第一个实例

1、untiy3d开发环境配置好以后,开始我的第一个开发实例 2、在Hirearch---create---3DObject---Cube,在场景中创建一个正方体 3、project---create---C# script,命名为mition 4、双击mition脚本,打开vs2012进行脚本编写 5、vs打开脚本后,会默认引用两个命名空间,切已经默认创建了两个函数“start()”和“...

weixin_34366546的博客 174

Unity3D入门:创建你的第一个Hello World游戏

通过创建一个空对象,编写一个简单的脚本,并将其附加到对象上,我们能够在Unity控制台中输出"Hello World!Unity3D是一款功能强大的游戏开发引擎,它提供了丰富的工具和功能,使开发者能够轻松创建各种类型的游戏。本文将向您介绍如何使用Unity3D创建一个简单的Hello World游戏,并提供相应的源代码。将"HelloWorld"脚本拖放到场景中的"GameManager"对象上。这段代码创建了一个名为"HelloWorld"的脚本类,并在开始时输出"Hello World!

DiAngular的博客 1018

【Unity入门】创建第一个Unity 3D程序

本文介绍如何在Unity中创建第一个Unity 3D程序 - 弹跳的小球

Tealc 1344

必看!wechat-article-exporter:轻松批量下载公众号文章

微信搜索“”关注公众号。在信息爆炸的时代,我们每天都会接触到大量优秀的微信公众号文章。有时候,我们想要将这些精彩的内容保存下来,以便日后回顾或者分享给更多的人。然而,微信公众号并没有提供直接的批量下载功能,这给我们带来了不少困扰。今天,我要给大家分享一款非常实用的软件——wechat-article-exporter,它能够帮助我们轻松地批量下载微信公众号文章,让你不再为文章的保存而烦恼。

王乐平 技术博客 4350

【随机过程】Markov Chain的定义及发展历程与实际应用

本模块书写的初衷:由于在学习张波张景肖等学者所著的《应用随机过程》存在着不甚了解的知识点,经过个人查找资料并整理、分享,希望能够为有同样疑惑的读者贡献绵薄之力,同时如果个人编写内容有错误,恳请读者指正。本文为对《应用随机过程》第42页中Markov Chain基本概念的补充。1.Markov Chain的定义俄国数学家 Andrey Andreyevich Markov 研究并提出一个用数学方法就能解释自然变化的一般规律模型,被命名为马尔科夫链(Markov Chain)。

qq_49657150的博客 3742

【拥抱元宇宙】创建你的第一个Unity程序HelloWorld,并发布

第一个Unity程序——HelloWorld。 1、需要先下载一个UnityHub,以及安装Unity编辑器。UnityHub需要登陆,激活码可以选择个人用户,免费的。免费的无法改变启动画面,其他的都还好。以下案例,我以Unity2020.3.22LTS版本进行创建,其他大佬们可以根据自己情况选择版本。 2、新建一个项目 3、选择3D模板,项目名称,就叫HelloWorld...

WeskyNet 1148

Android14_MTK调试LCD屏功能

android14 MTK平台调试LCD屏

m0_37786046的博客 1469

使用vscode编写第一个Hello World程序页面详细步骤

前言: 对于编程人员来说,第一个程序几乎必写的都是Hello World,也是代表进入了新的学习篇章吧 一、操作步骤 1.打开vscode(如果没有这个软件,可以从我的文章里面看下载教程),文件---->新建文本文件或者使用快捷键:CTRL+N打开 2.文件-->保存 3.选择文件保存位置后,文件的后缀名txt更改为html,然后点击保存 4.vscode里面第一行输入! 注意:这个!一定是英文输入法的才会显示。如果是中文的!这两个感叹号不会显示出来的 8.任意选择一个浏览器打开(我是选择这个web

快乐学习 9056

springcloud+nacos+gateway+oauth2小聚会

在微服务工程中,Nacos作为目前主流的注册中心和配置中心,Spring Cloud Gateway作为目前主流的网关,下面引入spring security+oauth2+jwt作为认证和授权中心,进行简单的聊聊。

ldcaws的专栏 2643

深度学习动画实战:用MotorNerve系统5步实现自然角色交互

本文详细介绍了如何利用腾讯游戏的MotorNerve系统,通过深度学习技术5步实现自然角色动画交互。从环境搭建、基础运动控制到交互过渡和行走转向优化,该系统能显著提升游戏动画制作效率,尤其适合中小团队替代昂贵的动捕方案。重点解析了骨骼动画配置、PFNN控制器使用及Blender工作流集成等核心技术。

book8的博客 685

Unity3D从安装到运行第一个程序

现在项目中需要用到unity3d建模 目前自己试试,首先主页就很难找,托bd的福。 一、安装 首先下载地址https://store.unity.com/cn/download-nuo unity3d有一个叫做unityhub的版本管理器,方便切换不同的unity3d版本,也可以用来管理工程,首先要安装的就是这个东西 安装完成后注册个人账户,登录获得授权 离线激...

三体问题 5814

基于Simulink的二相混合式步进电机驱动器快速建模与仿真实践

本文详细介绍了如何利用Simulink对二相混合式步进电机驱动器进行快速建模与仿真。通过从零搭建电机数学模型、设计H桥控制逻辑,并集成步进时序,手把手指导读者创建可运行的仿真模型文件。该方法能有效验证控制策略,避免硬件调试风险,是学习与实践电机驱动开发的理想途径。

weixin_29171087的博客 147

【unity萌新第一步】Unity的Hello World(适合小白)

Unity萌新的第一步:使用unity写第一个Hello World IT界有个笑话:“我擅长用各种语言写Hello World”。我讲这个笑话的目的是,指出:写一个HelloWorld程序可以带你迅速的了解一下这门语言的语法特点。 而我本人也是个刚学不久的萌新,在空白到入门阶段痛苦了很久。直到前两天跟着一个教程又走了一遍新手教程才恍然大悟,为了避免后人和我一样在门口兜兜转转找不到门,我写这么一个...

Niuxipo的博客 5289

ClickHouse分布式表原理:大数据分片存储与查询

我是一名资深大数据工程师,专注于ClickHouse优化和分布式架构设计。拥有5年以上大数据开发经验,曾为多家电商、金融公司提供ClickHouse解决方案。欢迎关注我的博客(),一起探讨大数据技术!留言互动:你在使用ClickHouse分布式表时遇到过什么问题?欢迎在评论区分享,我会一一解答!

AI大模型应用之禅 958

DCNv4+YOLOv8:2024最新可变形卷积赋能目标检测,从原理到实战的科研级优化指南

从理解DCNv4“自适应变形卷积核”的核心思想,到亲手将其嵌入YOLOv8并验证在复杂场景的检测效果,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解目标检测中“特征自适应提取”的核心价值。现在就开始行动,相信你会在目标检测的“自适应特征提取”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入DCNv4后,YOLOv8在复杂场景下的检测精度提升3-5个百分点,尤其是小目标和遮挡目标的AP提升更为明显,而推理速度仅下降5%-10%(可通过模型量化进一步优化)。2024年最新推出的。

m0_64661770的博客 267

unity入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

在新建完成后会在创建的目录下生成相关工程文件如图所示:Assets: 资源(场景脚本模型)Library: 库(系统)Logs: 日志Packages: 导入的包ProjectSettings: 工程设置Temp: 临时文件(文件过大可以删除部分缓存)UserSettings: 设置未完工暂无题外话初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:2023届全国高校毕业生预计达到1158万人,就业形势严峻;

Python_0011的博客 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Unity3D】Helloworld

这个游戏引擎大名鼎鼎,容易学,能很快弄出很多好玩的游戏。Unity3D有个好处,是兼容往下的版本。这一点起码比起隔壁的Cocos2dx好多了,Cocos2dx现在都不知道更到什么版本了,3.x只能用VS2012以上的版本玩就算了,还和2.x的语法与配置大相径庭;另外,大家熟悉的SSH三大框架现在更到面目全非,各位玩JAVAEE的都懂……Unity3D其实也和SSH一样,不是版本越新越好,虽然现在U

编程记录,亲测有效 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

帮你省了3个小时,来直接开发Unity的HelloWorld【保姆级别操作指导】

今天被朋友启发:Unity能开发动画效果并录像。 学委之前做视频感觉就挺吃力的,听说能用编程来做,一下子就起劲了! 这就搞起来。 不过我从未使用过Unity,但是作为一个写了十几年Java的多语言爱好者,我觉得不应该被难倒! 先看看效果(B站视频还在审核)!!! 当做一个挑战,我就展开了。 安装Unity 我用的是MacBook Pro: 学委下载的是2017的UNITY LTS版 为什么选择这个? 因为通过UnityHub安装(我是先安装了hub的),安装的时候提示要14G左右的空间下载Unity相关的

持续学习持续开发,我是雷学委! 3500

Unity(1)-Hello World

C#脚本Hello World的执行

害怕也得前进 1267

第一个u3d程序,hello world(UGUI)

首先,本文中都使用ugui控件。不使用gui.xxx来画在最表面,因为需要控制层次。 1 首先新建一个u3d项目,使用2D视角 2 在场景中新建一个text组件 注意:这里新建好了以后会带一个canvas,此tex组件存在于此canvas中3 将项目中的camera拖拽到text组件的canvas中。 4 选择canvas当前的视角模式为world place,并把camera播放到ca

9527的专栏 1894

Unity游戏Mod/插件制作教程03 - 插件实例1: HelloWorld

在BepInEx中,给我们准备了一个类,BaseUnityPlugin,这是继承于MonoBehaviour的,也就是说,我们的插件,最终会以组件的形式挂载,实际上也是这样,每个插件最终都会挂载到游戏中BepInEx的物体身上。在BepInPlugin特性中,我们填入了3个参数,分别是插件的ID,插件的名字,插件的版本号,对于ID,我个人习惯使用域名反写法,一般是me.xiaoye97.plugin.游戏名.插件名,插件的名字没有什么特别的要求,直观即可。

爱编程的鱼的博客 2747

Unity第一个脚本程序

我的unity版本是2018 1.首先新建项目,创建一个平面和一个立方体,创建完如下: 2.正下方右键,新建一个C#脚本 项目正下方空白处右键,创建->C#脚本 此处命名为testJB 3.双击,使用vs打开 打开后如下: using System.Collections; using System.Collections.Generic; using UnityEn...

天启的博客 519

第一个Unity项目——Flappy Bird

Unity是什么: 它就是一个2D/3D编辑器,同时又是一个游戏引擎 游戏引擎:使用者只需要调用这些功能,而不需要重写实现这些功能 第一步:资源导入与资源处理 资源导入的方法: 直接将资源拖入Project面板 资源处理 2D游戏总的来说是依靠Sprites(图片精灵) Sprite的类型 Default——默认纹理类型 Normal map——法线贴图资源 Editor GUI and Legacy ——用户界面的特图资源 Sprite——图片精灵 Cursor——鼠标光标 Cookie—

ht_game的博客 3644

Unity启动外部程序(Process)

启动外部程序时:直接使用Process.Start();来启动外部程序,参数(需要启动的外部程序所在文件位置) 关闭外部程序时:使用 process.Kill();来关闭外部程序   private string exePath; void Start() { exePath = @"C:\Windows\System32\calc.exe"; }...

代码黑洞 1万+
上一篇: Unity3D添加离线帮助文档(MacOS版)
下一篇: redis和mongodb各自的优缺点,怎么选择?
xy_cpp
博客等级 码龄10年 119粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值