在 Unity 中实现 Span<T>

     2023-03-30     170

关键词:

【中文标题】在 Unity 中实现 Span<T>【英文标题】:Implement Span<T> in Unity 【发布时间】:2019-07-04 09:52:07 【问题描述】:

我正在尝试在 Unity 中使用 Span。

我知道 System.Memory 尚不支持,但我还是想实现它。

我直接从NuGet下载了库。我从nuget包中的netstandard2.0文件夹中得到System.Memory.dll并将其拖到项目Assets/Scripts文件夹中。

但我收到此错误,我无法在我的 IDE (Rider) 中使用它。

程序集“Assets/System.Memory.dll”将不会被加载,因为 到错误:无法解析参考 'System.Runtime.CompilerServices.Unsafe'。装配是否丢失或 与当前平台不兼容?

我的问题是:如何在 Unity 中使用 Span?


Unity 版本:Unity 2019.1.7f。操作系统:Windows

【问题讨论】:

正如错误所说,您缺少System.Runtime.CompilerServices.Unsafe。查看“依赖项”选项卡on NuGet 以了解它需要哪些依赖项。您还需要检查所有依赖项的依赖项。可能更容易关注***.com/a/53458099/1086121 为什么是-1?经过几个小时的搜索,我在这里提出了我的问题,然后在其他几个小时后我找到了答案(我注意到这个答案在 Unity 论坛的多个地方被问到,所以这不仅仅是我的问题)。这里的答案可能为我节省了第二部分搜索的时间。这有什么问题吗? 【参考方案1】:

Nuget may generate issues in Unity.

解决办法是直接下载dll。

    从direct download 获取库 => 下载包

    将 lib/netstandartd2.0 文件夹中的 System.Memory.dll 导入项目窗口

    在项目窗口中选择System.Memory.dll,然后禁用“验证引用”

我从unity forum 获取信息并应用于我的情况。 (在论坛中他们使用 Unity Packages,而我只是在 Assets 上设置库)

【讨论】:

谢谢你。从那时起,您在使用 Spans 时遇到过任何问题吗? 我在 Windows 服务器上将它用于 unity 2019.1.something,它可以正常工作几个月。从未在移动或其他应用程序上尝试过。有时统一因未知原因崩溃,但我将其与 Enet C# Wrapper 库相关(不能完全确定)。【参考方案2】:

我遇到了同样的问题。

通过下载missing package解决了

并将lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll 复制到我的游戏资源文件夹中。

【讨论】:

unity中实现双向链表(代码片段)

一:前言双向链表是链表的一种,和单链表一样,双链表也是由节点组成,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便... 查看详情

为啥 List<T> 在 .NET 4.5 中实现 IReadOnlyList<T>?

】为啥List<T>在.NET4.5中实现IReadOnlyList<T>?【英文标题】:WhydoesList<T>implementIReadOnlyList<T>in.NET4.5?为什么List<T>在.NET4.5中实现IReadOnlyList<T>?【发布时间】:2013-02-2204:00:11【问题描述】:为什么List&lt;T& 查看详情

beziercurve贝塞尔曲线-在unity中实现路径编辑(代码片段)

文章目录简介一阶贝塞尔曲线二阶贝塞尔曲线三阶贝塞尔曲线图形理解BezierCurve一阶贝塞尔曲线二阶贝塞尔曲线三阶贝塞尔曲线应用BezierCurveSimpleBezierCurvePathSimpleBezierCurvePathAlonger简介贝塞尔曲线(BezierCurve),又称贝... 查看详情

在 Delphi 中实现 List Enumerator OfType<T>

】在Delphi中实现ListEnumeratorOfType<T>【英文标题】:ImplementingListEnumeratorOfType<T>inDelphi【发布时间】:2012-05-2607:32:10【问题描述】:我正在使用DelphiXE来实现一个允许按类型过滤列表元素的枚举器。我快速组装了一个测试单... 查看详情

unity中实现列表中元素随机排序(代码片段)

一:前言例如一个列表中有顺序的10个数字0-10,现在需要将他们打乱顺序二:代码实现usingSystem.Collections.Generic;usingUnityEngine;publicclassTest:MonoBehaviourpublicList<int>list=newList<int>();voidStart()for(inti=0;i<10;i+&#... 查看详情

数组如何实现 IList<T> 而无需在 C# 中实现属性“Count”? [复制]

】数组如何实现IList<T>而无需在C#中实现属性“Count”?[复制]【英文标题】:HowdoArraysimplementIList<T>withoutimplementingtheproperty"Count"inC#?[duplicate]【发布时间】:2012-09-0918:59:51【问题描述】:很长一段时间以来,我都对... 查看详情

在unity中实现动画的正反播放代码

usingUnityEngine;usingSystem.Collections;publicclassAnimationAntiSowing:MonoBehaviour{publicstaticAnimationAntiSowing_initialise;voidAwake(){_initialise=this;}///<summary>///动画进行正反播放///</summ 查看详情

unity中实现解析xml文件(代码片段)

一:前言在我们的项目开发过程中,策划们可能会配置很多的数据在XML文本文件中,例如商城物品,随机名称等,往往这些数据会放在不同的XML文件中二:什么是XMLXML是一种很像HTML的标记语言,被设计... 查看详情

在 Python 中实现 XOR

】在Python中实现XOR【英文标题】:ImplementingXORinPython【发布时间】:2016-01-0100:12:43【问题描述】:所以我正在尝试在Python中实现逻辑运算符XOR。我首先询问用户他们想要测试多少个输入(4-TT、TF、FT、FF)。我知道XOR计算T&T->... 查看详情

unity中实现嵌套滑动框(代码片段)

一:效果演示二:前言Unity中如果两个ScrollRect嵌套在一起,后面的会挡住前面的,当在二级列表区域拖动时导致一级列表无法滑动三:实现原理根据滑动的方向,来进行事件的渗透传递,如果当前滑动... 查看详情

如何在unity中实现拖尾效果

在制作游戏过程中会出现鼠标滑动的实现,而为啦增强视觉效果,往往会添加拖尾或者鼠标点击的特效,接下来就说说在unity中如何实现拖尾效果,首先unity中有个组件,叫TrailRenderer,在Component——>Effect——>TrailR... 查看详情

unity中实现ui渐变(代码片段)

一:效果演示二:使用GradientDir:渐变方向ColorArray:颜色数组三:实现原理通过添加顶点并设置顶点数据实现渐变,注意颜色数组数量越多顶点和三角形数量也会增加UGUI源码解析——BaseMeshEffect四:代... 查看详情

unity中实现列表中元素随机排序(代码片段)

一:前言例如一个列表中有顺序的10个数字0-10,现在需要将他们打乱顺序二:代码实现usingSystem.Collections.Generic;usingUnityEngine;publicclassTest:MonoBehaviourpublicList<int>list=newList<int>();voidStar 查看详情

在离子中实现半星

】在离子中实现半星【英文标题】:Implementinghalfstarsinionic【发布时间】:2018-08-1514:15:20【问题描述】:所以基本上,我有一个具有评级模块的离子移动应用程序。但是,当我得到一个不是整数的平均值时,我很难知道如何实现... 查看详情

导航栏实现横向滑动效果

...n>AET</span><span>LET</span></div></div>js中实现滑动效果:思路:当(滑动的距离=总滑动宽度 查看详情

bootstrap中如何在下拉菜单中实现分割线

参考技术A下拉菜单分割线在Bootstrap框架中的下拉菜单还提供了下拉分割线,假设下拉菜单有两个组,那么组与组之间可以通过添加一个空的<li>,并且给这个<li>添加类名“divider”来实现添加下拉分隔线的功能。<divclas... 查看详情

我在哪里可以找到新的 Span<T>?

】我在哪里可以找到新的Span<T>?【英文标题】:WheredoIfindthenewSpan<T>?【发布时间】:2018-05-1821:54:59【问题描述】:每个人都在写新类型Span&lt;T&gt;有多棒,所以我急切地想开始在我的库中重写几个方法,但是我在哪... 查看详情

在 C++ 中实现通用堆栈

】在C++中实现通用堆栈【英文标题】:Implementinggenericstackinc++【发布时间】:2016-02-2312:14:21【问题描述】:我正在使用STL和boost库实现通用堆栈数据结构。#include<iostream>#include<cstdio>#include<stack>#include<boost/any.hpp>#i... 查看详情