public void GetData_Rotation() { this.Group.transform.rotation = Quaternion.Euler(10, 20, 30); SerializableComponentData data = (this.Group as ISerializableComponent).GetData(); Assert.That(data.Rotation, Is.EqualTo(Quaternion.Euler(10, 20, 30)).Using(QuaternionEqualityComparer.Instance)); }
public void GetData_Position() { this.Group.transform.position = new Vector3(1, 2, 3); SerializableComponentData data = (this.Group as ISerializableComponent).GetData(); Assert.AreEqual(new Vector3(1, 2, 3), data.Position); }
public void GetData_Scale() { this.Group.transform.localScale = new Vector3(1, 2, 3); SerializableComponentData data = (this.Group as ISerializableComponent).GetData(); Assert.AreEqual(new Vector3(1, 2, 3), data.Scale); }
public void ApplyData_TransformedChildGroup() { this.Group.transform.position = new Vector3(1, 2, 3); this.Group.transform.rotation = Quaternion.Euler(20, 30, 40); this.Group.transform.localScale = new Vector3(5, 5, 5); SketchObjectGroup newGroup = GameObject.Instantiate(this.Group); this.Group.AddToGroup(newGroup); newGroup.transform.position = new Vector3(3, 2, 1); newGroup.transform.rotation = Quaternion.Euler(80, 90, 100); newGroup.transform.localScale = new Vector3(.5f, .5f, .5f); SketchObjectGroup targetGroup = GameObject.Instantiate(this.Group); SerializableComponentData data = (this.Group as ISerializableComponent).GetData(); (targetGroup as ISerializableComponent).ApplyData(data); SketchObjectGroup deserializedChildGroup = targetGroup.transform.GetChild(0).GetComponent <SketchObjectGroup>(); Assert.AreEqual(new Vector3(3, 2, 1), deserializedChildGroup.transform.position); Assert.AreEqual(new Vector3(.5f, .5f, .5f), deserializedChildGroup.transform.localScale); Assert.That(deserializedChildGroup.transform.rotation, Is.EqualTo(Quaternion.Euler(80, 90, 100)).Using(QuaternionEqualityComparer.Instance)); }
void ISerializableComponent.ApplyData(SerializableComponentData data) { if (data is LineSketchObjectData lineSketchData) { this.ApplyData(lineSketchData); } else { Debug.LogError("Trying to deserialize object as LineSketchObject that is not a LineSketchObjectData object."); } }
public void ApplyData_ChildGroup() { SketchObjectGroup newGroup = GameObject.Instantiate(this.Group); SketchObjectGroup targetGroup = GameObject.Instantiate(this.Group); this.Group.AddToGroup(newGroup); SerializableComponentData data = (this.Group as ISerializableComponent).GetData(); (targetGroup as ISerializableComponent).ApplyData(data); Assert.AreEqual(1, targetGroup.transform.childCount); Assert.AreEqual(2, targetGroup.GetComponentsInChildren <SketchObjectGroup>().Length); }
void ISerializableComponent.ApplyData(SerializableComponentData data) { if (data is RibbonSketchObjectData ribbonData) { RibbonMesh = new RibbonMesh(ribbonData.CrossSectionVertices, ribbonData.CrossSectionScale); SetControlPointsLocalSpace(ribbonData.ControlPoints, ribbonData.ControlPointOrientations); meshRenderer.sharedMaterial = Defaults.GetMaterialFromDictionary(ribbonData.SketchMaterial); ribbonData.ApplyDataToTransform(this.transform); } else { Debug.LogError("Invalid data for RibbonSketchObject."); } }
void ISerializableComponent.ApplyData(SerializableComponentData data) { if (data is PatchSketchObjectData patchData) { transform.position = Vector3.zero; transform.rotation = Quaternion.identity; transform.localScale = Vector3.one; ResolutionWidth = patchData.ResolutionWidth; ResolutionHeight = patchData.ResolutionHeight; SetControlPoints(patchData.ControlPoints, patchData.Width); meshRenderer.material = Defaults.GetMaterialFromDictionary(patchData.SketchMaterial); originalMaterial = meshRenderer.sharedMaterial; patchData.ApplyDataToTransform(this.transform); } }