Unity学习笔记(零基础到就业)|Chapter04:C#篇补充到Unity篇过渡

news/2024/5/18 11:55:09 标签: unity, 学习, 笔记, c#, 游戏引擎, 游戏, 游戏程序

Unity学习笔记(零基础到就业)|Chapter02:C#篇补充到Unity篇过渡

  • 前言
  • C#总结补充
    • 1.值类型和引用类型有什么区别,他们在值的传递上分别有怎样的特性
    • 2.string是引用类型,但是他对外表现出值类型的特性,为什么?
    • 3.了解常用的容器,包括Array、ArrayList、List、Dictionary、Stack、Queue、LinkedList
      • (1)Array
      • (2)ArrayList
      • (3)List:泛型集合列表
      • (4)Dictionary:无序的泛型集合
      • (5)Stack
      • (6)Queue:队列
      • (7)LinkedList
  • Unity篇
    • 1.什么是Unity脚本生命周期?学习Unity脚本生命周期
    • 2.什么是MonoBehviour?


前言

这篇文章是对前面C#入门 、 C#基础 、 C#核心篇章重点知识的补充,并从生命周期函数、MonoBehavior类开始初步接触Unity,作为C#篇到Unity篇的过渡~


C#总结补充

1.值类型和引用类型有什么区别,他们在值的传递上分别有怎样的特性

值类型:整数、bool、struct、char、小数、枚举
引用类型:string、数组、自定义的类、内置的类、集合类

区别在于内存存储所用的分区不同,值类型数据存放在栈里,引用类型数据放在堆里,内存地址放在栈里(字符串类型的值存储在静态存储区,引用在栈里),直接赋值的话值类型赋值的是栈里的数据,且不管原来数据如何变化,被赋值的数据都不随之更改;引用类型赋值的是引用(内存地址),原对象或被赋值的对象数据改变,对方的数据都会跟着变化。

2.string是引用类型,但是他对外表现出值类型的特性,为什么?

字符串是值存放在静态存储区,引用存储在栈里的,字符串又具有不可修改的特性,就算修改了字符串的值,也是在静态存储区中新增加了一块区域存储修改后的值,原先的引用(内存地址)发生了改变,指向新的值。因此假设字符串对象a赋值给了对象b,其中字符串a的值改变,那是指a的引用发生了改变指向改变后的值,b的引用依旧指向原先的值,不会随之变化

3.了解常用的容器,包括Array、ArrayList、List、Dictionary、Stack、Queue、LinkedList

(1)Array

数组。用于存储大量同种类型数据。固定长度,数据类型需一样。数组是一个连续空间的固定大小的容器,这样的特点就导致数组比较利于查询跟修改,但不利用增删。详细数组的介绍和使用请见C#基础篇

(2)ArrayList

特点:
1、按照顺序进行存储
2、大小长度会根据需要动态变化
3、可以存储任何类型数据
4、可以存储重复元素
5、因为可以存储任何类型数据,在存取时需要强制类型转换,引起装箱和拆箱的操作,可能会影响代码正确性和效率

(3)List:泛型集合列表

特点:
1、只能存储指定类型的数据
2、比起数组,列表的大小长度可以是不固定的,可指定初始容量大小,但会自动随着元素数量增加/减少而自动增大/减小容量
3、可使用的方法包括添加、插入、删除、查找、排序等,因为指定了数据类型所以在一定程度上比ArrayList更灵活高效,在编译时没有问题在执行时出错概率就不大了。

(4)Dictionary:无序的泛型集合

特点:
1、跟List一样都是规定好了值的数据类型,但还需要规定键的类型,即索引时的下标不一定是0,1,2…这样的有序数字了,而是可以自定义每个元素的下标,一旦指定泛型数据,则该容器就只能存储指定类型的键值对数据。要访问下标就用foreach遍历 对象.Keys就好。

(5)Stack

1、存储的一组相同类型数据,可添加(push方法)、删除(pop)数据、查看栈顶元素(peek)。
2、可存储重复元素
3、与数组列表的不同在于栈中的元素获取与它的存入顺序有关,满足先进后出模式。遍历时是从栈顶开始遍历的,如果不想弹栈的话就需要使用ToArray()方法转换为一个数组再进行遍历。如果对集合中的数据的存放顺序以及取出顺序有要求的话,可以考虑使用Stack或Queue。

(6)Queue:队列

特点:1、存储相同类型元素;2、先进先出;3、可以存储重复元素
添加元素(enqueue)、查看(peek)、删除(dequeue)

(7)LinkedList

LinkedList:底层采用双向链表数据结构实现的集合
数据结构:指计算机在内存中组织数据的一种方式,如数组。
数据结构的分类:线性结构(数组、链表、哈希表)、非线性结构(树、图)
链表:
单向链表:结构是:数据+存储下一个数据的地址
双向链表:结构是:存储上一个数据的地址+数据+存储下一个数据的地址

用法:
在这里插入图片描述

Unity篇

1.什么是Unity脚本生命周期?学习Unity脚本生命周期

unity脚本生命周期:unity脚本从唤醒到销毁的过程

Awake唤醒: 脚本的初始化阶段,当脚本被实例化时,awake函数会被调用且只执行一次。在这个阶段,脚本可以进行一些初始化的操作,例如获取组件、初始化变量等。

OnEnable: 脚本的启用阶段,当脚本被启用时,该函数会被调用。在这个阶段,脚本可以进行一些启用操作,例如开启协程、播放音效等。

Start: 脚本的启动阶段,当脚本被实例化后,Start函数会被调用,在这个阶段,脚本可以进行一些启动操作,例如播放动画、初始化游戏对象等。

FixedUpdate: 脚本的固定更新阶段,每一帧都会调用一次,与Update不同的是,FixedUpdate是在固定时间间隔内调用的,因此脚本可以进行一些需要在物理计算中使用的操作,例如移动刚体、检测碰撞等。

Update: 脚本的更新阶段,每一帧调用一次,在这个阶段,脚本可以进行一些更新操作,例如移动游戏对象、检测碰撞等。

LateUpdate: 脚本的后更新阶段,每一帧调用一次,在这个阶段,脚本可以进行一些后更新操作,例如相机跟随、角色动作等。

OnGUI: 脚本的GUI绘制阶段,每一帧调用一次,执行的次数是Update事件的两倍,在这个阶段,脚本可以进行一些GUI绘制操作,如绘制按钮、文本等。

OnDisable: 脚本的禁用阶段,当脚本被禁用时,OnDisable函数被调用,在这个阶段,脚本可以进行一些禁用操作,如停止动画、停止音效等。

OnDestory: 脚本的销毁阶段,当脚本被销毁时,OnDestory函数被调用,在这个阶段,脚本可以进行一些销毁操作,如释放资源、停止协程等。
在这里插入图片描述

2.什么是MonoBehviour?

MonoBehviour是所有脚本的基类,所有c#都要显性继承MonoBehviour,才能被挂载到GameObject上。GameObject的实例化对象是unity场景中对象的基本单位。


http://www.niftyadmin.cn/n/5374382.html

相关文章

【leetcode热题100】解码方法

难度: 中等通过率: 21.5%题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目描述 一条包含字母 A-Z 的消息通过以下方式进行了编码: A -> 1 B -> 2 ... Z -> 26给定一个只包含数字…

数据结构(C语言)代码实现(七)——一元多项式的表示与相加

目录 前言 参考资料格式 头文件LinkList.h LocateElem函数,定位查找 有序插入(没测试) 完整代码 头文件polynomial.h 测试函数(主函数) 测试结果 前言 寒假在家,有点学不下去,写文章的…

基于51 单片机的交通灯系统 源码+仿真+ppt

主要内容: 1)南北方向的绿灯、东西方向的红灯同时亮40秒。 2)南北方向的绿灯灭、黄灯亮5秒,同时东西方向的红灯继续亮。 3)南北方向的黄灯灭、左转绿灯亮,持续20秒,同时东西方向的红灯继续…

再说开源软件

开源软件推动技术创新 开源软件的相关话题,我曾经进行过原创文章的讨论,想了解的,可以参考我的文章: 【AI】一文读懂大模型套壳——神仙打架?软饭硬吃?-CSDN博客 【AI】马斯克说大模型要开源&#xff0c…

AD高速板常见问题和过流自锁

可以使用电机减速器来增大电机的扭矩,低速运行的步进电机更要加上减速机 减速电机就是普通电机加上了减速箱,这样便降低了转速增大了扭矩 HDMI布线要求: 如要蛇形使其等长,不要在HDMI的一端绕线。 HDMI走线时两边拉线&#xff0…

【原创 附源码】Flutter安卓及iOS海外登录--Google登录最详细流程

最近接触了几个海外登录的平台,踩了很多坑,也总结了很多东西,决定记录下来给路过的兄弟坐个参考,也留着以后留着回顾。更新时间为2024年2月8日,后续集成方式可能会有变动,所以目前的集成流程仅供参考&#…

debian12 - openssh-9.6.P1的编译安装

文章目录 debian12 - openssh-9.6.P1的编译安装概述笔记备注END debian12 - openssh-9.6.P1的编译安装 概述 在debian12上, 源码编译安装了openssl3.2 导致ssh失败. lostspeeddebian12d4x64:~$ openssl version OpenSSL 3.2.0 23 Nov 2023 (Library: OpenSSL 3.2.0 23 Nov 2…

快速重启网络服务 IP Helper

有时候,因为需要配置虚拟机,又或者网络环境复杂的情况下。win10重启后,会造成网络服务失效。所以这时候需要重启网络服务。即重启IP Helper。每次 我的电脑->鼠标右键 管理->服务和应用程序->服务->IP Helper 右键重启&#xff0…