Skip to content

Commit 0f4ea43

Browse files
committed
feat: update 撤销重做模式.md
1 parent ccecc9a commit 0f4ea43

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

packages/撤销重做模式/撤销重做模式.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1225,7 +1225,8 @@ state中的不可变数据无需被拷贝、恢复;state中的可变数据的
12251225

12261226
如果引擎使用了ECS模式,那么引擎的各个组件的数据分别保存在自己的ArrayBuffer中。它们是可变数据,因此需要对其拷贝和恢复。
12271227

1228-
在拷贝各个组件的ArrayBuffer数据时,由于它很大,所以不应该全部拷贝,而是只拷贝使用到的数据。以Transform组件为例,它有一个buffer数据,存储了所有Transform组件的position数据。拷贝Transform组件数据的相关代码如下:
1228+
在拷贝各个组件的ArrayBuffer数据时,由于它很大,所以不应该全部拷贝,而是只拷贝使用到的数据,然后在恢复时将其覆写到ArrayBuffer中。
1229+
以Transform组件为例,它有一个buffer数据,存储了所有Transform组件的position数据。拷贝Transform组件数据的相关代码如下:
12291230
```ts
12301231
let _getPositionSize = () => 3
12311232

@@ -1309,6 +1310,7 @@ let _restoreTypeArrays = (currentTransformComponentState, targetTransformCompone
13091310
return currentTransformComponentState
13101311
}
13111312

1313+
//targetTransformComponentState是之前deepCopy返回的transformComponentState
13121314
export let restore = (currentTransformComponentState, targetTransformComponentState) => {
13131315
let newCurrentTransformComponentState = _restoreTypeArrays(currentTransformComponentState, targetTransformComponentState)
13141316

0 commit comments

Comments
 (0)