Unity2D 学习笔记 0.Unity需要记住的常用知识

Unity2D 学习笔记 0.Unity需要记住的常用知识

前言

从小是一个很喜欢玩游戏的人,大概四岁的时候,在父亲的帮助下,接触了红色警戒,后来又在同一栋楼的好朋友的推荐下,了解到了星际争霸和魔兽争霸。从那时候开始就总想做出一款有着类似星际争霸那样的剧情宏大,玩法新颖的游戏,希望自己能够坚持下去吧。

之后所有的学习笔记都是基于自己一个练手的项目,下面介绍我用的Unity版本,供大家借鉴:

Unity版本:2023.1.12f1c1

使用的VS版本2022

这一章主要是记录一些奇怪的设置,以及一些预设函数名称和用法。将来也会不断补充。

调整Project Setting

Tilemap相关(创建地图块)

C#脚本相关

程序运行函数

private void Awake()

在加载脚本实例时会调用此函数。

此函数的调用比Start更早。

void Start()

在程序开始正式运行之前,调用的用于初始化程序的函数。
注意:仅在首次调用Update函数之前会执行此函数。

void Update()

在每一帧都会运行一次该函数,作为程序的主函数,十分重要。

Collider2D碰撞检测

private void OnTriggerStay2D(Collider2D player)

用于检测是否有物体与该Collider包围盒有接触。只要有物体待在检测框内,便会一直出现结果。具体运行逻辑为:每帧运行一次这个函数,检测相关碰撞。
注意: 这个检测会因为物体进入睡眠状态而停止,如何改变睡眠状态见后文Debug部分。

private void OnTriggerEnter2D(Collider2D player)

用于检测物体是否进入检测框,只会在进入的瞬间运行。

如何确定碰撞物体的性质

  1. 利用碰撞物体的tag进行标识,如上图。

关键词

this

用于代指该脚本类,这与C++中相关概念类似。

gameObject

代指该脚本所挂在的gameObject。

void GameObject.SetActive(bool value)

用于设置该对象能否使用,是否激活。

T GameObject.GetComponent<T>()

用于获取该对象的某个组件。

Mathf

一个数学相关的库文件,可以直接引用,不需要Include和Using

Mathf.Clamp(value, min, max)

将value规范化到min, max区间内:
v ˉ = m i n ( m a x ( v , m i n ) , m a x ) \bar{v} = min(max(v, min), max) vˉ=min(max(v,min),max)

输入检测Input

键盘输入相关

Input.GetAxis(string name)

用于获取在name方向上的输入,例如有"Horizontal"(水平),"Vertical"(垂直)。具体设置可以在Project Settings>Input Manager 里面修改。

bool Input.GetButtonDown(string ButName)

获取目标按钮的按下状态,如果按下 则返回true。

Unity Component相关

Debug和奇怪问题

1.Q:为什么在碰撞检测脚本中,使用OnTriggerStay2D函数时,物体进入并Stay后,该函数只会响应一会,随后便不响应了?

A:这是因为这个物体在Stay过程中,会自动休眠。如果想要改变这个现状,可以修改Edit>Project Settings>Physics 2D>Time To Sleep 这个值,或改变其下面两个参数,来控制休眠时间。

相关推荐
Turbo正则4 小时前
群论学习入门 | 群论与李群的基本概念
人工智能·学习·算法·抽象代数
毛丫讲绘本4 小时前
0-3岁选绘本需要做到越早启蒙越要简单
人工智能·学习·微信·微信公众平台·微信开放平台
小c君tt4 小时前
linux学习笔记1
linux·笔记·学习
吃好睡好便好5 小时前
泰戈尔的诗歌6
学习·生活
双吉堡5 小时前
北京通州有哪些热门且专业的学画画画室?
学习
Go-higher6 小时前
DriverTest 驾考知识卡片学习助手 —— 一款基于 Jetpack Compose 的现代 Android 学习APP
android·学习
星幻元宇VR6 小时前
公共安全主题展厅设备【防洪防汛安全科普系统】
科技·学习·安全
AI科技星6 小时前
32维超复数流形中意识信息场与物质耦合的拓扑动力学
人工智能·学习·算法·数据挖掘·回归·乖乖数学·全域数学
鱼很腾apoc7 小时前
【Linux】第7期 进程间通信 (IPC) 详解:管道 (匿名 / 命名) + System V
linux·服务器·c语言·学习·进程间通信·ipc
WarPigs7 小时前
AB包自定义打包工具
unity