기존 3D object가 load 되어 있을 때
(브라우저를 열자 마자 3D object가 바로 load 될 때)
즉 3D object를 내가 가지고 있을 때는 [localStorage]를 사용 해서 해당 3D object의 (position/scale/color) 정도의 값만 저장시키면 되었다.
하지만 [localStorage]는 용량의 제한 5,10MB(문자열만) 이 있어서 [scene]자체를 전부 저장하기가 어렵다.
그래서 localStorage대신 찾아보니 [IndexedDB]를 사용하면 된다고 한다. 용량의 제한은 따로 없다고 한다!
↓바로 indexedDB에 Scene값을 넣어보니 error가 발생하였다.
객체를 복사 할 수 없다고 나오는데 문자열 형태의 값들을 넣었을 때 오류가 나지 않는점에서 JSON화를 시켜야한다고 생각을 했다.
🤣검색해도 원인이 제대로 나오지 않았다...🤣
JSON.stringify = 객체를 JSON 문자열로
JSON.parse = JSON 문자열을 객체로
↑위의 사진처럼 나오지 않고
↓아래 사진 처럼만 나오는 것 이었다.
바보같이 JSON.parse() 와 JSON.stringify()를 동시에 사용하면 되는데 사고가 유연하지 못했다.
const scene = new THREE.Scene();
// scene의 값들을 json 문자열로 변환
let sceneProperties = JSON.stringify(scene, null, 3)
// JSON 문자열을 객체로
let jsonScene = JSON.parse(sceneProperties)
console.log(jsonScene)
이런식으로 해주면 값을 가져 올 수 있다!
하지만 indexed DB를 사용 할 일이 없어져서...중단