unity自学笔记(基于B站大佬IGBeginner0116)

谈谈Unity实体组件ECS与Jobs System Unity2018版本提供了ECS和Jobs System功能,网上也有很多这方面的技术介绍,本篇博客从Unity架构优化的角度给读者介绍关于ECS和Jobs System的使用,结合着实际案例希望让读者更容易理解它们。 Unity 实体组件系统和 C# Job System 是两个不同的系统,但它们密不可分,若要了解这两个系统,我们先看看在 Unity 场景中创建游戏对象的工作流程如下所示: ... 阅读详情

组件

每个游戏物体都由组件构成,不同的组件搭配构成了不同的物体

初始代码解读

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class helloscript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

前三行和其他语言一样,申明要使用的内容

using

在C#中,using 语句用于引入命名空间

using System.Collections

引入System.Collections 命名空间。该命名空间包含了一些非泛型集合类,这些类用于在 C# 中存储和管理对象,例如 ArrayList 和 Hashtable。定义了集合操作的基础功能

非泛型

在没有指定数据类型的情况下定义集合或类

ArrayList list = new ArrayList();
list.Add(1);           // 整数
list.Add("Hello");    // 字符串

using System.collections.Generic

引入了 System.Collections.Generic 命名空间。包含了一些基于泛型的集合类,如 List<T>、Dictionary<TKey, TValue> 等。泛型集合能够更好地提供类型安全并提升性能,因为它们在编译时知道存储什么类型的数据

泛型

泛型是通过类型参数化来定义类或集合,它允许你在定义时不指定具体的数据类型,而是在使用时再传入指定类型

List<int> list = new List<int>();
list.Add(1);          // 只能存储整数
// list.Add("Hello"); // 这将导致编译错误

using UnityEngine

引入了 Unity 的核心库 UnityEngine。所有与 Unity 引擎相关的基本类、功能和组件都在这个命名空间中定义,比如 GameObject、MonoBehaviour、Transform 等。这是任何 Unity 脚本所必需的,因为它提供了访问 Unity 引擎和 API 的基础。

冒号“ : ”

继承,相当于Java中的extends

MonoBehaviour

MonoBehaviour 描述的是一种可以被 Unity 引擎执行且可以附加到游戏对象上的单一行为类,允许开发者实现特定的游戏逻辑和行为。因此,可以理解为它是用于定义游戏对象行为的基本类型

Start方法

在游戏的第一帧刷新前被执行

Update方法

在游戏的每一帧都会执行

Debug.Log()

用于打印信息

程度表示

Debug.LogWarning和Debug.LogError,输出效果:

修改字体颜色

在信息开头加上<color=颜色>,结尾加上</color>

Keyboard.current.wKey.isPressed

键盘输入操作,用于判断语句中,该句为判断W键是否被按下,相应的可以改成其他键

foreach

C#中的增强循环遍历

基本语法

foreach (var item in collection)
{
    // 对每个 item 执行操作
}
  • var item: 这是一个变量声明,用于表示当前迭代的元素。类型可以是指定类型,或使用 var 让编译器自动推断类型。
  • collection: 这是被迭代的集合,可以是数组、列表、字典等任何实现了 IEnumerable 或 IEnumerable<T> 接口的对象。

单词解释

便捷操作

使用Shift+Alt+鼠标左键可以竖着复制

问题记录

编写完成后在unity中点击运行没有反应

1、可能是没在编写完成后保存,按下Ctrl+S保存即可

2、有些操作需要你点击游戏窗口才会显示,比如按键输入操作

com.unity.collections@0.9.0-preview.6.7z 2020版没有这个库了, 现在我先预存一下,有需要的都可以拿。 立即下载

相关推荐

【小白教程】本地部署VLM-R1模型(使用Docker)

通过Docker本地部署VLM-R1大模型,详细教程。

m0_69855053的博客 2937

[Unity ECS] Unity Collections Package

  该包提供了可用于Job 和 Burst 编译代码的非托管数据结构。 这个包提供的集合分为三类: Unity.Collections 中名称以 Native- 开头的集合类型具有安全检查,以确保它们被正确处理并以线程安全的方式使用。 Unity.Collections.LowLevel.Unsafe 中名称以 Unsafe- 开头的集合类型没有这些安全检查。 剩余的集合类型没有被分配并且不包含指针,因此实际上它们的处理和线程安全从来都不是问题。这些类型只保存少量数据。   Native-t

unity尧明的博客 4809

汇川H5U搭配步进伺服电机使用CANopen通讯控制电机案例

摘要:本文介绍了基于汇川H5U PLC和STM4260B-CANopen-M步进伺服电机的控制系统搭建流程。主要内容包括:硬件准备(PLC、伺服电机、24V电源)、电机参数默认设置(地址1号、1M波特率)、使用AutoShop软件编写程序(配置CANopen参数、导入电机描述文件、设置PDO参数)以及功能块编程(使能控制、速度控制、绝对位置控制等)。通过查阅通讯手册完成各功能块参数配置,最终在主程序中调用功能块实现控制系统开发。该方案适用于需要精确运动控制的工业自动化场景。

m0_46512607的博客 1595

【Unity】Unity C#基础(十三)泛型(Generic)

文章目录泛型(Generic)泛型(Generic)的特性泛型类泛型方法泛型委托继承和泛型泛型方法虚拟方法泛型参数隐式强制转换泛型参数显示强制转换泛型参数强制转换到其他任何类型使用is和as运算符泛型约束派生约束构造函数约束值约束引用约束多个泛型参数C#泛型与Java泛型 泛型(Generic) 泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。 C#的泛型,无论是源码,IL语言,还

一个普普通通的游戏开发者 4882

别再只接个放大器了!压电传感器测量电路(电压/电荷放大器)的5个实战配置要点

本文深入解析压电传感器测量电路中的5个关键实战配置要点,包括电缆长度选择、输入阻抗匹配、过载保护设计、低频噪声抑制及放大器选型策略。特别针对电压放大器和电荷放大器的应用场景差异提供工程实践建议,帮助工程师有效解决信号失真、噪声干扰等常见问题,提升测量精度和系统可靠性。

weixin_26869081的博客 302

(超详细)Scala环境搭建(scala-2.12.15、IDEA2021.1.3)

Scala环境搭建(scala-2.12.15、IDEA2021.1.3) JunLeon——go big or go home 目录 Scala环境搭建(scala-2.12.15、IDEA2021.1.3) 一、Scala概述 1、什么是Scala? 2、Scala发展史 3、Scala与Java的关系 二、Scala环境搭建 1、环境准备 2、Scala安装与配置环境变量 3、验证Scala 三、编写第一个Scala程序 1、使用IDEA创建maven工程 2、.

JunLeon的博客 3万+

ECS 简略版说明七:Collection、Mathmatic

没有多维数组类型,但是可以把多维转成一维,比如:for an。

qq_37672438的博客 930

o型圈沟槽设计_O型密封圈——详细选型过程及步骤

一、密封圈常用材料二、密封圈常用密封形式密封圈分为活塞密封,活塞杆密封,端面密封,旋转密封。三、O型密封圈的选型规则O型密封圈的尺寸图径向安装O型圈选型(静态和动态运动)活塞杆密封选择适当规格的O形圈时,应该保证其外径(d1+2*d2)至少等于或者大于沟槽外径d6;当选择的O形圈直径d1大于250 mm时, O形圈外径将不能超过沟槽外径的3%;当选择的O形圈直径d1小于250mm时, O形圈外径将...

weixin_39856630的博客 2万+

Unity ECS学习笔记(一)

ECS架构概述 ECS术语 实体Entity:像容器一样 组件数据Component Data:要存储在实体中的数据(不包括处理) 组件系统ComponentSystem:处理 组Group:组件系统运行所需的ComponentData列表 Unity官版ECS主要特征如下: 数据和行为分离 在通常的Unity开发中,我们会将Monobehavior组件挂载到一个Gameobjec...

elegentbeauty的博客 2494

AD936x Evaluation Software 详细配置

作者:ShownSun 工作室:时沿科技 文章目录AD936x Evaluation Software详细配置1 系统概述2 AD9361 Wireless Transceiver Evaluation Setup2.1 标签描述2.2 用户参数2.3详细配置3 AD936x RF Wizard3.1 标签描述3.2 用户参数3.3 详细配置4 AD936x Digital Filter Wizard4.1 标签描述4.1.1 时钟配置4.1.2 滤波器配置4.1.3 接收滤波器配置4.1.4 发射滤..

ShownSun博客 5193

LVGL 丝滑菜单3(Silk Menu)

h。

摸鱼专家 89

记录一下解决 Unity A Native Collection has not been disposed 错误的要点

然后我们就可以发现,出错的地方在 UnityWebRequest 上,经过一通查询,发现最多的说法是,申请的 request 没有回收导致的内存泄露,解决方法很简单,就是添加一下 using 关键字。第一步先说怎么定位有问题的地方,Unity编辑器其实有一个隐藏的内存泄露检测模式的功能,可以把这个错误的所在堆栈给打印出来,这里提供一段代码来启用这个功能。我们有的时候,会设置自己的 uploadHandler ,但是不设时,request 自己原本也有一个的,它就不会被释放了,自然是要泄露了。

勥小透明 4057

MIC:最大信息系数

目录 1. 概念 1.1 MIC 1.2 互信息 2.MIC的优点 3. 算法原理 3.1 MIC公式原理 3.2MIC计算步骤 (1)计算最大互信息值 (2)对最大的互信息值进行归一化 (3)选择不同尺度下互信息的最大值作为MIC值 4. 代码实现 6. 其他方法 1. 概念 1.1 MIC MIC,即(Maximal Information...

满腹的小不甘 5万+

Unity官方文档中关于内存管理的翻译(2021.3)

托管堆是您的Unity项目选择的脚本运行时(Mono或IL2CPP)自动管理的内存部分。在上面的图表中,蓝色框表示Unity分配给托管堆的一定数量的内存。其中的白色框代表Unity在托管堆的内存空间内存储的数据值。当需要额外的数据值时,Unity会从托管堆(标有A的地方)分配它们的空间。内存碎片和堆扩展上图显示了内存碎片的示例。当Unity释放一个对象时,该对象占用的内存会被释放。然而,空闲空间不会成为一个“自由内存”的单一大池。已释放对象的两侧可能仍在使用。

qq_33347809的博客 556

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

unity性能优化笔记

10%3 = 1 求余 位运算 10 &(3-1) = 1 string hello = "helloworld" int num = 4 "helloworld" 4 存放在代码段 C#: 代码段 : (只读,存放二进制指令,运行的时候加载进去) 数据段 : 全局变量, 静态全局变量 堆...

LM514104的博客 377

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Unity对象池

在unity的2021版本后,Unity引入了对象池,从这以后就可以用Unity内置的对象池,这次我们就来演示一下Unity内置的对象池。

tongmeng_yiran的博客 1686

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

如何在Unity中实现多线程编程

在Unity中实现多线程编程主要依赖于C# Job System、Tasks和Threads等机制。这些机制可以帮助你在不阻塞主线程的情况下执行耗时的操作,从而提高应用程序的性能和响应性。

lcfengokok的博客 2930

TanStack React Query 的 useSuspenseQuery 完全指南:Suspense 数据获取、错误边界与实现原理

`useSuspenseQuery` 是 TanStack Query(本仓库为 [packages/react-query](https://link.gitcode.com/i/47db87e97dc16b854ae369f982c75d3f))在 React Query 中用于对接 React `Suspense` 的专用查询 Hook。它消除了手工编写 `isPending` / `err

gitblog_00818的博客 744

Unity添加程序集引用

                                            在uni.

qq_43381010的博客 2195

Unity DOTS 学习笔记1 - ECS 0.50介绍和安装

Unity DOTS 学习笔记1 - ECS 0.50介绍和安装 为什么学习这个技术 ECS的全称为Entity Component System,是最早由暴雪在GDC2017上提出的一个新的游戏设计框架,数据和处理上都和目前主流的面向对象OOP有很大的差距。他是面向数据编程(DOD),他的优点也就是缺点,不用繁杂的对象和继承关系,只处理符合条件的数据,他的最大优点就是快。 看下图说明:来源https://learn.unity.com/tutorial/part-1-understand-data-ori

thinbug的专栏 6589

Unity一些很有用的技巧和实现

unity技巧

qq_33347809的博客 1376

【Unity笔记】常见集合类System.Collections

ArrayList:长度可变数组,不限定类型 ArrayList al = new ArrayList(); ↓ List:替代ArrayList,限定类型 List list = new List&lt;int&gt;();   Hashtable:哈希表,不限定类型 Hashtable ht = new Hashtable(); ↓Dictionary:替代Hashtable,限...

weixin_34122604的博客 485

【Unity】JsonUtility解析集合(collections)类型(List)

Unity自带的Json解析工具类JsonUtility居然没有API用于解析集合类型,也太鬼扯了吧。 https://stackoverflow.com/questions/36239705/serialize-and-deserialize-json-and-json-array-in-unity http://www.boxheadproductions.com.au/deserializ...

weixin_33857230的博客 947

Unity开发时遇到的各种需要注意的地方

前言: 最近在做东西的时候突然想到,自己以前做过的项目有很多地方需要注意的,然而并没有记录下来,导致下次还会出现这样的问题。于是就有了这个想法,把之前各种各样奇奇怪怪的问题都记录下来,解决方案也写下了。 一是加深记忆,二是万一又遇到了好歹也有个参考; 正文: 1、Transform.GetComponentsInChildren找不到组件!? 这是因为Transform.G...

魔术师Dix的博客 7579

关于Unity 2018的实体组件系统(ECS)二

孙广东  2018.5.20关于Unity 2018的实体组件系统(通用名称ECS)二 将介绍如何在Unity上使用实体组件系统(通常称为ECS)。 这次的内容是Unity提供的ECS API的基本用法,一个小应用程序和并行化。 它不包括与Unity的GameObject / Component的合作,以及实际使用。 获取可以使用ECS的编辑器U...

游戏路上的小学生 1万+

MySQL建库建表操作学习笔记

SQL(Structured Query Language,结构化查询语言)是用于在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。:用于定义对数据库对象(库、表、列、索引)的操作,如 CREATE、DROP、ALTER、RENAME、TRUNCATE 等。保存可变长度的字符串(可包含字母、数字以及特殊字 符)。:用于定义对数据库记录的操作,如 INSERT、DELETE、UPDATE、SELECT 等。:用于定义对数据库、表、字段、用户的访问权限和安全级别,如 GRANT、REVOKE 等。

Eternitycai的博客 222
上一篇: HTML练习解析
下一篇: Windows蓝牙图表突然不见了怎么办
Prometheus_17
博客等级 码龄2年 73粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值