当前位置: 首页 > news >正文

【从零开始入门unity游戏开发之——C#篇01】理论开篇

文章目录

  • 前言
  • 前置条件
  • 什么是编程?
  • 什么是代码?
  • 什么是编程语言?
  • 常见的编程语言
  • 什么是C#?
  • 学习Unity为什么要先学习C#?
  • 选择适合自己的IDE集成开发环境
  • VSCode安装和环境配置
  • VSCode调试模式
  • 专栏推荐
  • 完结

前言

这个系列我想了很久,最后决定还是整理出来。因为太多人问我如何零基础入门unity,我想着与其推荐,不如自己整理整理。

这个系列重点是压缩知识,只包含常用和必要的知识,尽量少讲理论知识,多举例说明,做到理论和实践相互结合,这样更容易理解。我会不断补充完善它,一方面是分享,另一方面是自己也可以扎实一下基础。我希望可以达到,无论是任何知识点,搜索查看之后几秒钟就能知道它是怎么且如何使用,这样后面忘记了某些知识点还可以把它当作文档回头查看。

文章虽然写的是零基础入门,但是其实无论是新手,还是有一定编程基础的人,我相信都能从中有所收获。扎实的基础真的很重要,不要等房子建起来了,才去修复地基,这无疑是十分困难且危险的行为。

如果你自认为基础已经很好了,那我简单提几个问题,看你是否能答上来:

  • 栈和堆的概念
  • 委托和事件的区别?如何实现观察者模式?
  • 什么是程序集和反射?为什么需要反射?
  • 什么是GC、装箱和拆箱,如何优化?
  • 什么是特性,如何自定义特性?
  • 泛型的使用?
  • 进程和线程,如何实现多线程?
  • 什么是里氏替换原则?

好了,本文是开篇,主要是讲一下理论知识,看不懂也没关系,了解一下有个印象就行了。

前置条件

  • 只需要一台电脑

什么是编程?

编程(也叫编码或开发)是通过特定的编程语言与计算机进行沟通的过程。通过编程,我们可以告诉计算机执行特定的任务。计算机本身只会执行非常基础的操作(如数学运算、数据存储、信息处理等),而编程则是人类用计算机能理解的语言编写一系列指令,指示计算机如何完成一个任务。

编程的目的是让计算机能够按照我们的需求工作,例如做一个网页、开发一个应用程序、分析数据,甚至是控制硬件设备等。

什么是代码?

代码是编程语言的具体表达形式,是程序员用来告诉计算机如何做某事的一系列指令。每一行代码都是为了实现某个功能,代码的逻辑结构决定了程序的行为。

什么是编程语言?

编程语言是一种人工语言,它用于定义计算机程序的行为和操作。通过编程语言,开发者能够向计算机发出指令,控制计算机的执行过程。编程语言包括一系列的语法规则和语义,用于描述数据的结构、操作以及程序的逻辑。

编程语言可以分为以下几类:

  • 低级语言(如汇编语言):

    直接与硬件交互,依赖于计算机的体系结构。
    与机器码的接近,语法和语义很简单,但可读性差,开发难度较高。

  • 高级语言(如Python、Java、C#、JavaScript等):

    离硬件较远,更接近人类语言,便于理解和编写。
    提供了更多的抽象功能,如内存管理、面向对象的支持等。

  • 脚本语言(如JavaScript、PHP、Ruby等):

    通常用于Web开发,语法简洁,开发周期短,主要用于动态网页和自动化任务。

  • 标记语言(如HTML、XML等):

    用于描述数据结构,非编程语言,但在计算机科学中用于组织数据。

  • 查询语言(如SQL):

    用于与数据库进行交互,进行数据查询、插入、更新等操作。

常见的编程语言

  • Python:简洁、易学,广泛用于Web开发、数据科学、人工智能等领域。
  • Java:面向对象,跨平台,广泛应用于企业级应用、Android开发等。
  • C:结构化编程语言,适合底层开发,常用于系统开发和嵌入式系统。
  • C++:C语言的扩展,支持面向对象编程,广泛应用于游戏开发、系统软件、应用软件等。
  • JavaScript:主要用于Web开发,能够在浏览器中执行,支持动态网页。
  • Ruby:动态、面向对象,广泛应用于Web开发(特别是Ruby on Rails框架)。
  • Swift:Apple开发的编程语言,主要用于iOS和macOS应用开发。
  • C#:微软开发的语言,主要用于Windows应用、游戏开发、Web开发等。

什么是C#?

C#(发音为 “C-Sharp”)是一种由微软开发的现代编程语言,属于C语言家族,并且是 .NET 平台的一部分。它结合了C、C++、Java等语言的特点,具备简洁、强大、类型安全的特性,适合进行各种类型的开发,包括桌面应用、Web应用、移动应用、以及游戏开发等。

C#的特点包括:

  • 面向对象:支持类、对象、继承、多态、封装等面向对象的编程思想。
  • 类型安全:强类型检查,避免类型不匹配的错误。
  • 简洁的语法:相比C++,C#的语法更简洁,减少了很多复杂的细节。
  • 自动垃圾回收:C#由.NET的垃圾回收机制管理内存,避免了手动管理内存的麻烦。
  • 跨平台支持:通过 .NET Core(现为 .NET 5/6 等版本)提供跨平台的支持,C#可以在Windows、Linux和macOS等操作系统上运行。

学习Unity为什么要先学习C#?

  • Unity的脚本语言是C#,没有C#的基础,你将无法理解和编写Unity项目中的代码。
  • C#语法简洁且功能强大,它为Unity开发提供了高效的编程能力。
  • C#是跨平台的语言,这意味着你可以通过掌握它开发各种平台的游戏和应用。
  • C#的学习资源丰富,不仅限于Unity开发,对于其他编程任务也有广泛应用。

选择适合自己的IDE集成开发环境

IDE(Integrated Development Environment,集成开发环境)是一种为程序员提供开发、调试和执行程序所需工具的综合软件环境。它通常包含一个代码编辑器、调试器、构建工具、代码补全、版本控制等功能,目的是提高开发效率,简化软件开发流程。

目前市面上的IDE有很多,其中比较适合用于C#开发的包括Visual Studio(VS)和Visual Studio Code (VSCode),还有最近非商用免费开放的Rider。

其实选择哪个IDE都可以,根据自己喜欢选择即可。

这里我用的是VSCode,因为我一直用的都是VSCode,选择它原因:

  • VScode是一款轻量级的编辑器,安装包非常小,而且启动速度非常快。
  • 它拥有丰富的插件系统,更像一个任何语言都可以使用的万能的编辑器
  • 代码跟踪功能。绝大多数情况下要使用Git来管理我们的代码,这个时候VScode会跟踪我们的代码,非常明显地为我们标注修改内容。
  • 好看

VSCode安装和环境配置

参考:https://learn.microsoft.com/zh-cn/dotnet/core/install/windows

VSCode调试模式

参考:【unity小技巧】分享vscode如何进行unity开发,且如何开启unity断点调试模式,并进行unity断点调试

专栏推荐

地址
【从零开始入门unity游戏开发之——C#篇】
【从零开始入门unity游戏开发之——unity篇】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架开发】

完结

好了,我是向宇,https://xiangyu.blog.csdn.net

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

相关文章:

【从零开始入门unity游戏开发之——C#篇01】理论开篇

文章目录 前言前置条件什么是编程?什么是代码?什么是编程语言?常见的编程语言什么是C#?学习Unity为什么要先学习C#?选择适合自己的IDE集成开发环境VSCode安装和环境配置VSCode调试模式专栏推荐完结 前言 这个系列我想…...

ABAP开发-批量导入BAPI和BDC_1

系列文章目录 文章目录 系列文章目录[TOC](文章目录) 前言一、概念二、BDC和BAPI数据导入1、BDC数据导入(录屏)2、BAPI数据导入 三、实例1、BAPI2、BDC 总结 前言 一、概念 SAP中,对一个事务码反复操作并且达到批量处理数据的效果&#xff0…...

RabbitMQ七种工作模式之 RPC通信模式, 发布确认模式

文章目录 六. RPC(RPC通信模式)客户端服务端 七. Publisher Confirms(发布确认模式)1. Publishing Messages Individually(单独确认)2. Publishing Messages in Batches(批量确认)3. Handling Publisher Confirms Asynchronously(异步确认) 六. RPC(RPC通信模式) 客⼾端发送消息…...

并非传统意义上的整体二分

是的,如标题所见,本文章会以作者所理解的整体二分思想来介绍一系列整体二分食用方法。 一下内容均是作者本人理解,可能会与算法本身冲突。 1 本质 1.1 板子及从中的启发 我们在做主席树板子的时候,如果使用整体二分&#xff0…...

PostgreSQL的一主一从集群搭建部署 (同步)

一、实验环境 虚拟机名IP身份简称keep-postgres12-node1192.168.122.87主节点node1keep-postgres12-node2192.168.122.89备节点node2 二、安装数据库 源码包方式(主) 1、创建用户 [rootkeep-postgres12-node1 ~]# groupadd postgres [rootkeep-post…...

ios逆向某新闻 md5+aes

本期的案例比较简单,也许是ios逆向算法本来就比较简单的原因,所以前面我就多扯一些爬虫和逆向的东西。之前写的文章都是js逆向和android逆向的案例,这也是首篇ios的案例,所以会从入门开始讲起。 3大逆向对比 首先爬虫工程师大部…...

grpc的负载均衡

grpc的负载均衡分为client-side load balance和server-side load balance。 所谓的“客户端负载均衡”是指主调方调用被调方的时候,在grpc.DialContext里需要指定grpc.WithDefaultServiceConfig,这个DefaultServiceConfig默认是用pick-first策略。也支持…...

提升搜索体验!—— 推出 Elastic Rerank 模型(技术预览版)

作者:来自 Elastic Shubha Anjur Tupil 几分钟内即可开始使用 Elastic Rerank 模型:强大的语义搜索功能,无需重新索引,提供灵活性和成本控制;高相关性、顶级性能和文本搜索效率。 使用我们全新的先进跨编码器 Elastic …...

【51单片机】程序实验1112.外部中断-定时器中断

主要参考学习资料:B站【普中官方】51单片机手把手教学视频 前置知识:C语言 单片机套装:普中STC51单片机开发板A4标准版套餐7 码字不易,求点赞收藏加关注(•ω•̥) 有问题欢迎评论区讨论~ 目录 程序实验11&12.外部中断-定时器…...

webrtc-java:引领Java进入实时通信新时代

webrtc-java:引领Java进入实时通信新时代 项目地址:https://gitcode.com/gh_mirrors/we/webrtc-java 在现代互联网应用中,实时通信(Real-Time Communication, RTC)已成为连接人们的桥梁。而说起RTC技术的先锋,不得不…...

TongWeb7-东方通快速使用手册

TongWeb7-东方通 快速使用手册 文章目录 第1章 TongWeb7 产品介绍 1.1 概述1.2 规范支持 第2章 TongWeb7 安装 2.1 TongWeb7 安装要求 2.1.1 TongWeb7 支持的操作系统2.1.2 系统要求2.1.3 其他 2.2 安装TongWeb72.3TongWeb7 目录结构说明2.4 TongWeb7 的启动和停止 第3章 应用…...

JVM内存区块

大家好,经过前两篇文章的介绍,大家对数组也有了一定了解,其实所有的数组都是对象,我们在方法中引用数组的变量叫做引用变量(简称引用),那么数组到底是存放在哪里的呢,为什么引用再出…...

C语言单元总结

黑色加粗表示刷题刷到这样的题 红色加粗表示可能重要 单元一 程序设计宏观认识 C语言程序框架 C语言程序最基本的程序框架由两部分构成,分别是 1) 编译预处理 2) 函数组 C语言程序构成 C程序最大的特点就是所有的程序都是用函数来装配的,函数是构成…...

通过PS和Unity制作2D动画之一:创建形象

1、通过路径画出轮廓 使用路径的过程中,需要注意: 1)如果使用形状工具作图,比如使用椭圆工具画正圆形,需要设置其属性为“路径”。 2)使用路径选择工具,再按住Alt键点击某个路径,可…...

Notable是一款优秀开源免费的Markdown编辑器

一、Notable简介 ‌ Notable‌是一款开源的跨平台Markdown编辑器,支持Linux、MacOS、Windows以及国产操作系统等多种主流操作系统。它以其高颜值和强大的功能,成为了许多用户的首选工具。 主要特性 实时预览‌: Notable提供了实时预览功能&…...

基于MFC绘制门电路

MFC绘制门电路 1. 设计内容、方法与难点 本课题设计的内容包括了基本门电路中与门和非门的绘制、选中以及它们之间的连接。具体采用的方法是在OnDraw函数里面进行绘制,并设计元器件基类,派生出与门和非门,并组合了一个引脚类,在…...

C—指针初阶(2)

如果看完阁下满意的话,能否一键三连呢,我的动力就是大家的支持与肯定,冲! 二级指针 我们先看概念以及作用:用来存放一级指针的地址的指针 先看例子,我们逐一分析 我们先分析上面那个“1” 标注那里&#x…...

Linux 基础环境的开发工具以及使用(下)

1. make / Makefile 自动化构建的工具 1)引入 在我们进行一些大型的工程的时候,代码量是极其大,当我们代码在进行一系列的编译的时候,难免会出现一些错误,当我们对错误进行一系列的更改之后,难道我们需要…...

constexpr、const和 #define 的比较

constexpr、const 和 #define 的比较 一、定义常量 constexpr 定义:constexpr用于定义在编译期可求值的常量表达式。示例:constexpr int x 5;这里,x的值在编译期就确定为5。 const 定义:const表示变量在运行期间不能被修改&…...

期末复习-Hadoop综合复习

说明 以下内容仅供参考,提到不代表考到,请结合实际情况自己复习 目录 说明 一、题型及分值 二、综合案例题-部署Hadoop集群 或 部署Hadoop HA集群 案例 1:Hadoop 基础集群部署 案例 2:Hadoop HA 集群部署 案例 3&#xff…...

禁用SAP Hana错误密码锁定用户功能

背景 公司项目适配多种数据库其中包含SAP Hana,由于有同事的数据库连接工具保存了某个在用的数据库的旧密码,导致时不时会被锁用户。通过查询官方文档已解决,这里统一记录一下。 禁用密码锁定方法 以下按系统管理员和普通用户的解法分别列…...

Ubuntu 22.04加Windows AD域

说明:   Ubuntu 22.04系统通过realmd,sssd加入到 Active Directory 域,并为域用户配置sudo权限。同时为方便用户使用为Ubuntu系统安装wps与sogou中文输入法。 1. Ubuntu 22.04加入Windows AD域 1.1 首先配置网络,Ubuntu系统能…...

qt实现窗口的动态切换

先说一下整体思路。页面布局两个widget然后再将定时器和按钮关联起来。 定时器发出信号的时候,随着信号,不断地重新设置widget的宽度,实现窗口的动态切换。 具体操作如下: class QtWidgetsApplication4 : public QMainWindow {…...

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题②

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项资源任务书样题② 模块A 基础设施设置与安全加固(200分)A-1 登录安全加固(Windows, Linux)A-2 Nginx安全策略(Linux)A-3日志监控(Windows)A-4中间件…...

【Vulkan入门】09-CreateFrameBuffer

目录 先叨叨git信息关键代码VulkanEnv::FindHostVisitbaleMemoryTypeIndex()TestPipeLine::CreateFramebuffers() 与网上大多数文章不同,其他文章基本上都使用窗口框架(X11、GLFW、WSL等)提供的surface来显示Vulkan渲染出的图像。我认为那样会…...

FPGA设计-Vivado的Off-Chip Termination设置问题

目录 简介: 设置规则: output strength(输出驱动器的电流驱动能力) slew rate(输出电压压摆率) Pull type(上下拉类型) On-chip termination(输入端/输出端的内置片上端接电阻) 输出端接电阻配置 简介: 经常遇到在FPGA设计时,很多人很迷惑这些关于硬件的终…...

GC常见垃圾回收算法,JVM分代模型

如何判断是垃圾?引用计数器和Root可达性算法 如何进行清除?标记清除、复制、标记整理 堆分代模型?Eden,Surevivor,Tenuring 一个对象从创建到消亡的过程? 对象什么时候进入老年代? 一、GC&a…...

面试题整理(三)

芯冰乐知识星球入口:...

可视化建模以及UML期末复习----做题篇

一、单项选择题。(20小题,每小题2分,共40分) 1、UML图不包括( ) A、用例图 B、状态机图 C、流程图 D、类图 E、通信图 答案:C、流程图 UML中不包括传统意义上的流程图,流程图通常是指B…...

PostGIS分区表学习相关

在Postgresql中对空间数据进行表分区的实践_postgresql空间数据-CSDN博客文章浏览阅读1.4k次,点赞26次,收藏21次。Postgresql的分区功能允许将一个大表按照特定的规则拆分成多个小的分区表。这样做的好处在于,在查询数据时,可以只…...

wordpress查看权限/重庆自动seo

燃尽图: 今天我们一起开了个会,讨论我们面向的对象,和故事的由来。转载于:https://www.cnblogs.com/supreme1/p/10099651.html...

商务网站建设实训/小学培训机构

现在市面上免费的项目管理工具多如牛毛,然而在工作中一旦用错了工具,就不是免费不免费的事了,如果对项目整体进度造成影响,就得不偿失了。本着让项目管理者省钱又省力的目标,我们今天来测评一下那些热门的项目管理工具…...

做网站首页ps分辨率多少/sem竞价培训班

艺术风格转换是一种图像的合成问题,其中图像的内容是以另一种风格再现的。 Artistic style transfer is an image synthesis problem where the contentof an image is reproduced with the style of another. 近年来的研究表明,利用预训练卷积神经网络…...

wordpress 旅行社/百度教育官网

我们现在说Recursive backtracking: 迷宫的初始状态是墙壁都存在。选择一个开始区域。随机得选择一个没有访问过的邻接区域,并打通与它之间的墙壁。此邻接区域称为当前区域。如果所有周围的区域都是访问过的,则退回上一个区域进行挖据墙壁&am…...

十堰建设银行官方网站/百度小程序优化

在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度、阿里巴巴、腾讯。而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置。 能够进一线互联网公司,是大部分程序员奋斗的目标,有很多小伙伴可能因为学历望…...

公司网址怎么查询/河南搜索引擎优化

这个东西实际上慕课的艾伦大大先写的。 然后别人推荐给我,偶一直收藏着,然后偶再推荐给偶的队友们,然后呢,这帮货就懒得都不肯去看。。。 接着今天受伤在家就提出来了一点东西放在我博客顶上。。。 然后艾伦的原文呢在这里。http:…...