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

前言

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

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

Unity版本:2023.1.12f1c1
界面
使用的VS版本2022
VS界面
这一章主要是记录一些奇怪的设置,以及一些预设函数名称和用法。将来也会不断补充。

调整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这个值,或改变其下面两个参数,来控制休眠时间。
在这里插入图片描述

相关推荐

  1. unity-unity2d tilemap基本使用笔记0.5.4000

    2024-02-08 13:24:02       36 阅读
  2. Unity2D学习笔记 | 《勇士传说》教程 | (五)

    2024-02-08 13:24:02       53 阅读
  3. Unity2D学习笔记 | 《勇士传说》教程 | (六)

    2024-02-08 13:24:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-08 13:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-08 13:24:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-08 13:24:02       82 阅读
  4. Python语言-面向对象

    2024-02-08 13:24:02       91 阅读

热门阅读

  1. 数据结构_回文,相交题-2.4

    2024-02-08 13:24:02       55 阅读
  2. C++ 设计模式之单例模式

    2024-02-08 13:24:02       47 阅读
  3. 学习C语言的第4天

    2024-02-08 13:24:02       49 阅读
  4. B2071 余数相同问题(洛谷)

    2024-02-08 13:24:02       62 阅读
  5. Python数据容器(上)——list(列表)

    2024-02-08 13:24:02       49 阅读
  6. 快速重启网络服务 IP Helper

    2024-02-08 13:24:02       44 阅读
  7. git恢复rebase过程中遇到权限问题和丢失的提交

    2024-02-08 13:24:02       45 阅读
  8. python加密通信的优化1.0

    2024-02-08 13:24:02       46 阅读