// restore saved measures method private void Restore(EventParam jsonStringParam) { // create an new measure instance from the JSON string planeAngleInstance = JsonUtility.FromJson <PlaneAngleClass>(jsonStringParam.getStringParam()); instanceList.Add(planeAngleInstance); // instantiate 2 planes GameObject p1 = Instantiate(refPlane, cloneParent); p1.SetActive(true); cloneNormal = Instantiate(refNormal, p1.transform); cloneNormal.SetActive(true); cloneNormal.transform.localPosition = Vector3.zero; cloneNormal.transform.eulerAngles = Vector3.zero; GameObject p2 = Instantiate(refPlane, cloneParent); p2.SetActive(true); cloneNormal = Instantiate(refNormal, p2.transform); cloneNormal.SetActive(true); cloneNormal.transform.localPosition = Vector3.zero; cloneNormal.transform.eulerAngles = Vector3.zero; // set the non serializable fields of the measure instance planeAngleInstance.RestoreInstance(p1, p2); }
// process click event public void PlacePlaneClickRecieved(EventParam positionParam) { if (clickCount == 0) { planeAngleInstance = new PlaneAngleClass(); instanceList.Add(planeAngleInstance); } if (clickCount < 2) { clonePlane = Instantiate(refPlane, cloneParent); clonePlane.SetActive(true); clonePlane.transform.position = positionParam.getPointParam(); cloneNormal = Instantiate(refNormal, clonePlane.transform); cloneNormal.SetActive(true); cloneNormal.transform.localPosition = Vector3.zero; cloneNormal.transform.eulerAngles = Vector3.zero; planeAngleInstance.AddElement(clonePlane); } clickCount += 1; }