当前位置: 首页 > news >正文

【Unity3D日常BUG】Unity3D中出现“unsafe code 不安全的代码”的错误时的解决方法

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客
  • QQ群:1040082875

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

今天遇到一个错误,就是提示使用了不安全的代码,如下图所示:
在这里插入图片描述
这应该是插件或者自己脚本中使用了不安全unsafe的代码。

二、什么是unsafe

2-1、什么是unsafe不安全代码

默认情况下,C#是不支持 指针 的,unsafe 关键词用于在C#表示不安全的上下文,如果想要在C#中进行任何和指针相关的操作,就必须配合unsafe关键词使用。

在公共语言运行时(CLR)中,不安全代码是指无法验证的代码。

C# 中的不安全代码不一定是危险的,只是 CLR 无法验证该代码的安全性。因此,CLR 将仅执行完全信任的程序集中的不安全代码。

如果你使用不安全代码,你应该负责确保代码不会引发安全风险或指针错误。

2-2、解决报错

在菜单栏找到File→Build Setting→Player Setting→Other Setting下的Allow unsafe Code选项:

在这里插入图片描述
勾选该选项后,我们就可以在Unity中使用unsafe关键词了。

2-3、如何使用unsafe

用于修饰变量,给变量用上指针:

public class Testunfofa : MonoBehaviour
{
    void Start()
    {
        Fun();
    }

    private unsafe void Fun()
    {
        int i = 3;
        int* x = &i;
        Debug.Log((int)x);
    }
}

注意:unsafe 的使用虽然能让我们在C#中使用指针,但是会存在安全风险和稳定性风险,如果没有特殊需求,请尽量避免在C#中使用 unsafe。

三、后记

你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

在这里插入图片描述

博主还有跟多宝藏文章等待你的发掘哦:

专栏方向简介
Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
Unity3D之UGUIUGUIUnity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
Unity3D之VR/AR(虚拟仿真)开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。
Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
Unity3D之日常开发日常记录主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。

相关文章:

  • Node中实现一个简易的图片验证码流程
  • java-Lambda表达式
  • Robotics System Toolbox中的机器人运动(7)--RRT规划避障路径
  • 和一个海归的博士聊人生
  • 移动端布局介绍——css像素/物理像素/设备像素比
  • redis简介及八种数据类型
  • GAN Step By Step -- Step1 GAN介绍
  • vue纯前端结合css动画实现模拟导航效果
  • 【数据增强】90°、180°和270°翻转图片(*4)
  • 【Hadoop---07】HDFS 读 / 写 数据流程(面试重点)
  • 【笔记】C#得到真正的屏幕大小
  • SSH远程端口转发
  • 微信支付配置信息如何获取
  • nginx反向代理实例
  • webpack与vite对比
  • android图片蒙层
  • canvas绘制圆角头像
  • Create React App 使用
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Java 多线程编程之:notify 和 wait 用法
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • javascript面向对象之创建对象
  • JS 面试题总结
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Webpack 4x 之路 ( 四 )
  • 百度小程序遇到的问题
  • 诡异!React stopPropagation失灵
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 马上搞懂 GeoJSON
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 设计模式 开闭原则
  • 项目实战-Api的解决方案
  • 原生js练习题---第五课
  • 转载:[译] 内容加速黑科技趣谈
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ![CDATA[ ]] 是什么东东
  • #pragma data_seg 共享数据区(转)
  • #ubuntu# #git# repository git config --global --add safe.directory
  • %check_box% in rails :coditions={:has_many , :through}
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .bat批处理出现中文乱码的情况
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET 反射的使用
  • .NET命名规范和开发约定
  • ?php echo ?,?php echo Hello world!;?
  • @html.ActionLink的几种参数格式
  • @TableLogic注解说明,以及对增删改查的影响