unity 中可以通过在gameobject 上添加脚本,然后定义一些变量,拖拽节点给这些变量赋值,保存为序列化预制体。
快速复制一个已有的gameobject,可以用使用ctrol + d。复制之后的gameobjet有相同的序列化信息。每个gameobject 都有自己正确的节点序列化信息。实现这个过程gameobject 复制的算法。
原始gameobject 已链表形式进行存储。
链表节点
class Node
{
public Node Next;
public Node NodeValue;
}
// 原始物体根节点
Node head;
Node node = head;
Dictinoary<Node, Node> goNode = new Dictinoary<Node,Node>();
while(node!= null)
{
Node copy = new Node();
goNode.Add(node,copy);
node = node.Next;
}
foreach(var info in goNode)
{
info.Value.NodeValue= goNode[info.Key.NodeValue];
}