【发布时间】:2021-12-22 20:32:47
【问题描述】:
例如: 列表 = {a,b}
private List<GameObject> FunctionName(List<GameObject> List)
{
List<GameObject> ListClone = List;
ListClone.RemoveAt(1);
return List;
}
输出:a
另一个例子:
GameObject a = GameObject b;
Destroy(b);
return a;
输出:空
我怎样才能复制值而不是地址,这样旧的对象就不会被它改变?
这就是原因,虽然没有什么能像它应该的那样工作,我需要解决所有问题,做任何事情都需要 10 倍的时间,所以请赐教。
【问题讨论】:
-
你应该研究一下引用类型和值类型的区别。这是一个开始:What is the difference between a reference type and value type in c#?
-
它没有链接任何东西...您分配
b的引用并将其存储在一个名为a的变量中... =>它们现在都指向同一个对象... Se对于您的列表示例...听起来您应该阅读一些非常基本的 c# 和一般的面向对象编程教程;) -
@RetiredNinja 我做到了,但是我现在怎么才能只将值而不是方向分配到同一点?
标签: unity3d gameobject