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

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

文章目录

  • 前言
  • 前置条件
  • 进制
    • 什么是十进制、二进制
    • 二进制有什么用?
      • 为什么计算机用二进制而不用十进制?
      • 二进制转十进制
      • 十进制转二进制
      • 二进制运算
  • 计算机中的数据存储单位
  • 什么是编程?
  • 什么是代码?
  • 什么是编程语言?
  • 常见的编程语言
  • 什么是C#?
  • 学习Unity为什么要先学习C#?
  • 选择适合自己的IDE集成开发环境
  • 专栏推荐
  • 完结

前言

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

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

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

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

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

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

前置条件

  • 只需要一台电脑

进制

什么是十进制、二进制

十进制很简单,其实就是我们生活中一直用的0123456789,逢十进一,9之后就是10
同理二进制就是逢二进一,0 1之后就是10 11 100 101…

二进制有什么用?

二进制是计算机系统中用来表示数据的一种基本数制,它只使用两个符号:0 和 1。每个符号称为一个“位”(bit)。

二进制位的组合是计算机存储和处理信息的基础。通过不同的二进制位组合,计算机可以表示数字、文本、图像、声音等各种各样的数据。

为什么计算机用二进制而不用十进制?

因为电路的开和关可以很容易地表示为0和1。二进制系统在硬件实现、可靠性、逻辑运算和数学基础等方面都有显著的优势,这使得它成为计算机内部表示和处理数据的首选数制。尽管我们人类通常使用十进制,但计算机使用二进制可以更高效、更可靠地执行各种计算任务。

二进制转十进制

二进制数转换成十进制数的方法是将每个位的值乘以其对应的2的幂次,然后将结果相加。例如,二进制数 1011 转换成十进制数的过程如下:

1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 8 + 0 + 2 + 1 = 11

所以,二进制数 1011 等于十进制数 11

十进制转二进制

十进制数转换成二进制数的方法是不断用2去除该数,记录下每次除法的余数,然后将这些余数倒序排列。例如,十进制数 11 转换成二进制数的过程如下:

11 ÷ 2 = 5 余 1
5 ÷ 2 = 2 余 1
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1

将余数倒序排列得到二进制数 1011

二进制运算

二进制运算包括逻辑运算(如AND、OR、NOT、XOR等)和算术运算(如加法、减法、乘法、除法等)。例如,二进制加法:

  1011
+ 1101
------10100

这表示十进制中的 11 + 13 = 24

计算机中的数据存储单位

计算机中的数据存储单位从小到大依次为:

单位符号字节大小 (Bytes)比特大小 (Bits)
bit1/81
字节B18
千字节KB10248192
兆字节MB1024 * 10248192 * 1024
吉字节GB1024 * 1024 * 10248192 * 1024 * 1024
太字节TB1024 * 1024 * 1024 * 10248192 * 1024 * 1024 * 1024
拍字节PB1024 * 1024 * 1024 * 1024 * 10248192 * 1024 * 1024 * 1024 * 1024
艾字节EB1024 * 1024 * 1024 * 1024 * 1024 * 10248192 * 1024 * 1024 * 1024 * 1024 * 1024
泽字节ZB1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 10248192 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024
尧字节YB1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 10248192 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024

注意:

  • 位(Bit):是计算机中最小的数据存储单位,每个位只能是0或1。其实就是前面说的一个二进制位
  • 字节(Byte):由8个位组成,是计算机中最常用的数据存储单位。1字节通常可以存储一个字符(如字母、数字或符号),具体和编码格式有关。

这些单位帮助我们理解和管理不同大小的数据。例如,一个文本文件的大小可能是几KB,一张高分辨率的图片可能是几MB,一部高清电影可能是几GB,而大型数据库或云存储系统可能会以TB或PB来衡量。

什么是编程?

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

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

什么是代码?

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

什么是编程语言?

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

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

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

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

  • 高级语言(如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会跟踪我们的代码,非常明显地为我们标注修改内容。
  • 好看

专栏推荐

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

完结

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

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

一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

相关文章:

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

文章目录 前言前置条件进制什么是十进制、二进制二进制有什么用?为什么计算机用二进制而不用十进制?二进制转十进制十进制转二进制二进制运算 计算机中的数据存储单位什么是编程?什么是代码?什么是编程语言?常见的编程…...

怎样提升企业网络的性能?

企业网络的稳定性和高效性直接影响员工的工作效率。以下从多维度分析了一些有效策略,帮助公司提升网络性能,营造更高效的办公环境。 1. 升级网络设备 采用性能更高的网络硬件是优化网络体验的重要基础。选择支持高吞吐量、低延迟的设备(如企业…...

1. 机器学习基本知识(2)——机器学习分类

1.4 机器学习分类 1.4.1 训练监督 1. 监督学习:已对训练数据完成标记 分类:根据数据及其分类信息来进行训练,使模型能够对新的数据进行分类 回归:给出一组特征值来预测目标数值 2. 无监督学习:没有对训练数据进行任…...

四叉树算法在游戏碰撞检测中的应用

简介 在游戏开发中,碰撞检测是一个非常重要但计算成本较高的环节。如果采用简单的暴力检测方法,需要对场景中的每个物体与其他所有物体进行碰撞检测,时间复杂度为O(n)。四叉树(Quadtree)算法通过空间划分的方式,可以显著降低碰撞…...

IDEA 打包普通JAVA项目为jar包

需求:普通java项目(有添加依赖的jar包),没有用maven管理依赖和打包,要打成jar包,包可以用“java -jar 包名” 启动程序。 讲如何打包前,先记录下普通项目的目录结构和怎么添加依赖包 1.目录结…...

Docker Compose 多应用部署 一键部署

介绍 Docker Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。 如:springbootmysqlnginx 如果一个个去部署他会非常的麻烦,这时候可以选择Docker …...

软件架构设计——通用表单UI—未来之窗行业应用跨平台架构

.东方仙盟_小世界 {margin-top: 2%;padding: 0 3%;background: #fff; } .东方仙盟_小世界 li span {width: 55px;padding-left: 0px; }.东方仙盟_小世界 li span {display: block;position: absolute;left: 0px;padding-left: 10px;width: 55px;font-size: 16px;background-siz…...

人工智能大语言模型起源篇(二),从通用语言微调到驾驭LLM

上一篇:《人工智能大语言模型起源篇(一),从哪里开始》 (5)Howard 和 Ruder 于2018年发表的《Universal Language Model Fine-tuning for Text Classification》,https://arxiv.org/abs/1801.06…...

VBA 连续打印多个内容成PDF

VBA 连续打印多个内容成PDF Dim wb As Workbook Dim sht1 As Worksheet Set sht1 ActiveSheet PT ThisWorkbook.PathApplication.ScreenUpdating FalseApplication.DisplayAlerts FalseApplication.Calculation xlCalculationManual For i [aa2] To [ab2][ad2] iSet wb …...

9. 高效利用Excel设置归档Tag

高效利用Excel设置归档Tag 1. Excle批量新建/修改归档Tag2. 趋势记录模型批量导入归档Tag(Method1)2. 趋势记录模型批量导入归档Tag(Method2)3. 趋势记录控件1. Excle批量新建/修改归档Tag Fcatory Talk常常需要归档模拟量,对于比较大的项目工程会有成千上万个重要数据需…...

ubuntu系统生成SSL证书配置https

自签名【Lets Encrypt】的测试证书,有效期三个月。 第一步:安装acme,如果没有安装git,需要提前安装 下载came资源 git clone https://github.com/Neilpang/acme.sh.git 无法访问,可以试用gitee的资源,安…...

顺序表(数据结构初阶)

文章目录 顺序表一:线性表1.1概念: 二:顺序表2.1概念与结构:2.2分类:2.2.1静态顺序表2.2.2动态顺序表 2.3动态顺序表的实现声明(初始化)检查空间容量尾插头插尾删头删查找指定位置之前插入数据指…...

AOF和RDB【Redis持久化篇】

文章目录 1.什么是持久化?2.RDB3.AOF 1.什么是持久化? Redis是跑在内存里的,当程序重启或者服务器崩溃,数据就会丢失,如果业务场景希望重启之后数据还在,就需要持久化,即把数据保存到可永久保存…...

数据可视化大屏UI组件库:B端科技感素材PSD

在数据可视化领域,一个出色的大屏UI设计不仅能够准确传达数据背后的信息,更能提升用户的视觉体验。然而,对于UI设计师而言,设计这样一款界面往往面临着寻找合适设计素材的挑战。为了应对这一难题,我们推出了这款数据可…...

【力扣算法】234.回文链表

快慢指针:一个指针走两步,一个指针走一步,当快指针走到链表末尾时,慢指针走到中间位置。 逆转链表:根据指针位置分成两个表,逆转第二个表。 按序判断就可以,如果是相同就是回文,反之…...

MVC流程分析

DisaptcherServlet本质是servlet&#xff0c;执行init()方法&#xff0c;自启动底层执行代码&#xff0c; 作用&#xff1a; 1、读取springmvc配置文件&#xff0c;创建Controller对象&#xff0c;放入容器中&#xff0c;map<"id",对象> 2、接收用户请求&#…...

编程中常见的技术难题有哪些?

技术的未来&#xff1a;如何驾驭变革 引言 在科技迅猛发展的今天&#xff0c;变革已成为常态。你是否感受到这一波潮流的力量&#xff1f;我们正身处一个充满机遇与挑战的时代。诸如人工智能、区块链、云计算等技术如同狂风骤雨&#xff0c;席卷我们的生活与工作方式。那么&a…...

「Mac玩转仓颉内测版50」小学奥数篇13 - 动态规划入门

本篇将通过 Python 和 Cangjie 双语介绍动态规划的基本概念&#xff0c;并解决一个经典问题&#xff1a;斐波那契数列。学生将学习如何使用动态规划优化递归计算&#xff0c;并掌握编程中的重要算法思想。 关键词 小学奥数Python Cangjie动态规划斐波那契数列 一、题目描述 …...

前端退出对话框也就是点击右上角的叉,显示灰色界面,已经解决

文章目录 遇到一个前端bug&#xff0c;点击生成邀请码 打开对话框 然后我再点击叉号&#xff0c;退出对话框&#xff0c;虽然退出了对话框&#xff0c;但是显示灰色界面。如下图&#xff1a; 导致界面就会失效&#xff0c;点击任何地方都没有反应。 发现是如下代码的问题&am…...

使div每次隐藏显示后都从顶部开始

<div ref"addmodel" > <!-- 这里内容很长&#xff0c;超出屏幕。。。 --> </div> methods:{ // 页面显示时滚动至顶部 scrollToTop() { const addmodel this.$refs.addmodel; if (addmodel) { addmodel.scrollTop 0; } }, } 在div每次显示或者…...

微软逐步淘汰 SMS 身份验证,通行密钥带来更强安全保障!

ZDNET 要点总结微软正在逐步淘汰将 SMS 作为身份验证方式&#xff0c;因为 SMS 消息未加密&#xff0c;易受黑客攻击。微软账户所有者将被提示设置通行密钥。通常登录或找回在线账户时会收到 SMS 验证短信&#xff0c;但这并非安全的身份验证方式&#xff0c;如今微软对使用微软…...

如何用AI CoverGen在5分钟内将音频转换为专业级音乐封面

如何用AI CoverGen在5分钟内将音频转换为专业级音乐封面 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen AICoverGen是一款…...

通过Hermes Agent自定义供应商配置接入Taotoken多模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Hermes Agent自定义供应商配置接入Taotoken多模型 对于使用Hermes Agent构建智能体应用的开发者而言&#xff0c;直接对接单一…...

如何用Python快速接入Taotoken并调用多模型API完成数据清洗任务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何用Python快速接入Taotoken并调用多模型API完成数据清洗任务 对于需要处理客户数据的开发者而言&#xff0c;数据清洗与结构化是…...

Node.js 服务中如何异步调用 Taotoken 聚合接口实现 AI 功能集成

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Node.js 服务中如何异步调用 Taotoken 聚合接口实现 AI 功能集成 在 Node.js 服务中集成大模型能力&#xff0c;通常意味着你需要处…...

手把手教你用USB ISP下载器给Arduino Nano烧写Bootloader(含ProgISP软件详细配置)

手把手教你用USB ISP下载器为Arduino Nano烧录Bootloader 当你拿到一块全新的Arduino Nano开发板&#xff0c;或是遇到程序无法上传的"变砖"情况时&#xff0c;很可能需要重新烧写Bootloader。Bootloader是存储在微控制器中的一小段特殊程序&#xff0c;它负责与Ard…...

如何利用碎片时间高效背单词:ToastFish桌面工具完整使用教程

如何利用碎片时间高效背单词&#xff1a;ToastFish桌面工具完整使用教程 【免费下载链接】ToastFish 一个利用摸鱼时间背单词的软件。 项目地址: https://gitcode.com/GitHub_Trending/to/ToastFish 想要在工作或学习间隙轻松记忆单词&#xff0c;却苦于没有专门的学习时…...

2026制造业数字化转型:Agent委外加工成本智能核算功能详解与应用

站在2026年这个智能体&#xff08;Agent&#xff09;全面爆发的时间节点回望&#xff0c;企业数字化转型已从早期的“数据上云”演进到了“决策自动化”的深度应用阶段。根据IDC与Gartner联合发布的《2026年全球智能体产业发展白皮书》&#xff0c;具备深度业务逻辑处理能力的智…...

从关系型到NoSQL:Postgres与Cassandra数据建模终极对比指南

从关系型到NoSQL&#xff1a;Postgres与Cassandra数据建模终极对比指南 【免费下载链接】Udacity-Data-Engineering-Projects Few projects related to Data Engineering including Data Modeling, Infrastructure setup on cloud, Data Warehousing and Data Lake development…...

中兴光猫工厂模式终极解锁工具:zteOnu完整指南

中兴光猫工厂模式终极解锁工具&#xff1a;zteOnu完整指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾经因为中兴光猫的限制而感到束手无策&#xff1f;想要进行高级配置却…...