序列list

本文介绍了一种使用特定语法创建列表的方法。通过简单的例子展示了如何利用逗号和方括号构建列表,列表中的元素可以是字符串、数值表达式甚至是其他列表。这种列表构建方式在编程中非常实用。

指定一个文字的序列,使用逗号来分隔其中的每个子变量,然后把整个列表放到方括号中。例如:

<#list ["winter", "spring", "summer", "autumn"] as x>
${x}
</#list>

 列表中的项目是表达式,那么也可以这样做:[2 + 2, [1, 2, 3, 4], "whatnot"],其中第一个子变量是数字4,第二个子变量是一个序列,第三个子变量是字符串”whatnot”。

### 如何在Unity中序列化`List` 为了使 `List<T>` 成功被序列化,在 Unity 中,通常的做法是确保该列表中的元素类型是可以被序列化的。可以被序列化的字段类型包括带有 `[Serializable]` 属性的自定义非抽象类、带同样属性的结构体、派生于 `UnityEngine.Object` 的对象引用以及原始数据类型(如整型、浮点数、布尔值和字符串等)。此外,数组和平铺集合也是可序列化的前提条件是它们内部存储的数据类型本身也能够被序列化[^1]。 下面是一个具体的例子来展示如何创建一个用于保存游戏状态的脚本,并且其中包含了两个 `List<int>` 类型成员变量: ```csharp using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class Save { public List<int> livingTargetPositions = new List<int>(); public List<int> livingTargetsTypes = new List<int>(); public int hits = 0; public int shots = 0; } ``` 这段代码展示了怎样通过给类加上 `[System.Serializable]` 特性标记使其成为可序列化的,并初始化了几个公开的字段以便于编辑器内查看或修改这些数值。对于想要持久储存的游戏进度而言,这样的设计非常有用处[^2]。 当涉及到更复杂的情况时——例如尝试序列化像字典 (`Dictionary`) 这样的不可直接序列化的容器,则可以通过实现接口 `ISerializationCallbackReceiver` 来间接完成这一操作。这允许开发者编写额外逻辑处理那些默认情况下不支持自动序列化的数据结构[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值