如何将一个对象的属性全部赋值给另一个对象呢?

[复制链接]
962 |4
天启 发表于 2023-11-30 12:52:07 | 显示全部楼层 |阅读模式
本帖最后由 天启 于 2023-11-30 12:53 编辑

比如我有1个生成好的摄像机,我想把玩家使用的摄像机属性包括位置角度弹簧臂等等都赋值给另一个摄像机,然后切换摄像机时让玩家感觉不出这种,如果每个属性都赋值一遍太麻烦了把,用clone会生成新的摄像机也不想new新对象咋办呢
回复

使用道具 举报

苍苍 发表于 2023-11-30 13:06:43 | 显示全部楼层
new Camera对象是不会有很大性能消耗的,不用担心这点
还是建议使用官方提供的 Camera.switch() 方式来切换哈

如果想了解如何遍历某个对象的属性,也可以使用Object.keys类似的方式来处理
参考:https://blog.csdn.net/weixin_43675447/article/details/99232258
回复

使用道具 举报

天启楼主 发表于 2023-11-30 22:00:14 | 显示全部楼层
苍苍 发表于 2023-11-30 13:06
new Camera对象是不会有很大性能消耗的,不用担心这点
还是建议使用官方提供的 Camera.switch() 方式来切换 ...

请问遍历后怎么用key去赋值呢,是有几个属性就要写几行代码吗?毕竟每个属性名称不一样呀
回复

使用道具 举报

苍苍 发表于 2023-12-1 07:47:45 来自手机 | 显示全部楼层
天启 发表于 2023-11-30 22:00
请问遍历后怎么用key去赋值呢,是有几个属性就要写几行代码吗?毕竟每个属性名称不一样呀
...

是可以for循环的,keys就是返回一个数组,直接拿着去for循环就行
这个方式不止适用于camera,其他对象应该也可以。
回复

使用道具 举报

天启楼主 发表于 2023-12-1 22:31:42 | 显示全部楼层
嗯 我的疑问是for循环的key得赋值给对象的属性,obj.xxx = key[index] 这里的xxx是咋写呢,需要自己把每个属性名都写一遍吗?
回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表