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