Unity中序列化和反序列化

为了满足面向对象中的封装性,我们通常使用private关键字使变量私有化,让外界无法访问修改,起到保护作用。

但是一些特殊情况,我们希望在Unity中Inspector面板中修改到脚本组件中的私有成员。Unity为我们提供了序列化和反序列化。

序列化:利用关键字 [SerializeField] 让私有成员在Inspector面板上显示出来。

反序列化:利用关键字 [System.NonSerialized] 让公有成员不在在Inspector面板上显示出来。(只让其他对象通过脚本来进行访问)

使用示例:

在一个MyRay.cs组件里添加:

    [System.NonSerialized]
    public int score;//反序列化

    [SerializeField]
    private int Length;//序列化

保存一下,在Unity的Inspector面板中加载一下,就会发现score变量不会显示,而Length变量显示出来,并且可以进行修改。

时间: 2024-07-31 14:29:52

Unity中序列化和反序列化的相关文章

php中序列化与反序列化在utf8和gbk编码中测试

在php中如果我们统一编码是没有什么问题了,但是很多朋友会发现一个问题就是utf8和gbk编码中返回的值会有所区别: php 在utf8和gbk编码下使用serialize和unserialize互相序列化和反序列化会出现无法成功反序列化的问题. 问题出现的原因主要是在不同编码下strlen函数计算中文字符串长度不同的原因. <?php $array=array('title'=>'php教程分享网','url'=>'http://www.111cn.net'); echo serial

Java 中序列化与反序列化引发的思考?

java 中序列化指从对象转变为 二进制流的过程中需要进行序列化,而反序列化指二进制流转换为java 对象.那么有的时候java 存储到数据库不需要序列化, 而计算机系统本质存储的就是二进制文件,数据库的本质又是什么呢? 一.从硬件说起 核心五部分:运算器.控制器.存储器.输入设备.输出设备 根据冯诺伊曼计算机原理,计算机除了五部分外,存储用于存放指令与数据,运算器完成算数与逻辑运算,外部人员通过输入/输出设备操作计算机,且计算机内部是使用二进制表示指令与数据. 其中指定由操作码和地址吗构成,操

java中序列化与反序列化的冷知识

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 关于什么是序列化,和为什么要序列化的知识就不再阐述了,本文主要探讨一些特殊点的情况. 1.java中如何实现序列化和反序列化 下面的代码是进行序列化的简单实例 public static void main(String[] args) { System.out.println("-----------------序列化----------------------↓"); Student stu

java开发中序列化与反序列化起到的作用

基本概念: 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据. 特别在网络传输中,它的作用显得尤为重要.我们可以把一个类实现序列化,然后在另一端通过反序列化可以得到该对象 例如:我们可以序列化一个对象,不过这个对象要实现序列化方法,并生成序列化号. 这是对一个对象进行序列化和反序列化的过程: public static byte[] serializeObj(Object object){ if (obje

java 打印流 递归复制子文件子文件夹 不同编码文件复制到同一文件中 序列化流反序列化流

package com.swift.jinjie; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.PrintStream; /*从键盘输入一个文件夹路径,利用打印流将该文件夹下的所有文件(包括子文件夹)复制到D盘下temp文件夹下.*/ public class PrintAllT

php中序列化与反序列化

把复杂的数据类型压缩到一个字符串中 serialize() 把变量和它们的值编码成文本形式 unserialize() 恢复原先变量 eg: $stooges = array('Moe','Larry','Curly');$new = serialize($stooges);print_r($new);echo "<br />";print_r(unserialize($new)); 结果:a:3:{i:0;s:3:"Moe";i:1;s:5:"

unity json序列化和反序列化

using Newtonsoft.Json; using System.Collections.Generic; using UnityEngine; public class JsonDe : MonoBehaviour { public class Produc { public string name = "sdf"; public int a = 1; public bool b = true; public float c = 2.1f; public Dictionary&

[.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化

[.net 面向对象程序设计进阶] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化 本节导读: 介绍JSON的结构,在JS中的使用.重点说明JSON如何在.NET中快带序列化和反序列化.最后介绍在使用.NET序列化JSON过程中的注意事项. 读前必备: A.泛型       [.net 面向对象编程基础]  (18) 泛型 B.LINQ使用  [.net 面向对象编程基础] (20) LINQ使用 1. 关于JSON JSON的全称是”JavaScrip

Php的序列化与反序列化

1.序列化的概念 序列化是指将复杂的数据类型压缩成一个字符串,反序列化则是将被序列化的数据还原成之前的数据. PHP中序列化与反序列化的函数分别是:serialize(value), unserialize(str) 如: <?php //php的序列化与反序列化 //serialize(value) //unserialize(str) $arr = array( 'name'=>'xiaoming', 'sex'=>'男', 'age'=>20 ); $str = serial