unity 实现自定义class深度拷贝 deep copy 深度复制 引用类型复制

气死我了,搜半天没有,全让序列化再反序列化,又不方便又不美观。结果自己试着一写就通,两行完事。

首先先安装Newtonsoft.Json 包,这个很常用也很简单,随便搜一下安上就行,早晚得学。

然后两行代码:

   public static T DeepCopy<T>(T DeepCopyObject)
    {
        string _ = JsonConvert.SerializeObject(DeepCopyObject);
        return JsonConvert.DeserializeObject<T>(_);
    }

 

成了

注意,我只实验了class里只有变量的class如下,带上方法的我还没试,懒得实验了,反正我够用了。

public class CreatureData
{
    public RangeType rangeType;//攻击类型(近战melee/远程remote/无攻击能力peace)
    public float moveSpeed;//移动速度
    public float HP;//生命
    public float HP_Max;//生命上限
    public float attackPower;//攻击力
    public float attackRange;//攻击范围
    public float attackSpeed;//攻击速度
    public DamageType damageType = DamageType.normal;//攻击类型,默认normal
    public float mass;//质量

}
public class CreatureDataList
{
    public List<CreatureData> creatureDataList;
}

 

posted @ 2023-02-12 19:39  黄油猫永动机  阅读(367)  评论(0编辑  收藏  举报