public static RedoObject handleRedoObject(RedoObject ro) { UncreateObject uco = ro as UncreateObject; if (uco != null) { GameObject go = PropHandler.objectFromId(uco.id); Prop prop = go.GetComponent <Prop>(); UnmoveObject unmoveObject = new UnmoveObject(uco.id, go.transform, prop.name, prop.paintHistory); PropHandler.untrack(go, true); return(unmoveObject); } UnmoveObject umo = ro as UnmoveObject; if (umo != null) { GameObject go = PropHandler.objectFromId(umo.id); RedoObject redoOb; if (go == null) { go = GameObject.Instantiate(PropHandler.props[umo.propName]); Prop prop = go.GetComponent <Prop>(); prop.paintHistory = umo.paintHistory; prop.propObjectId = umo.id; foreach (UnpaintObject unp in prop.paintHistory) { Prop.paintFromPath(go, unp.getNewColor(), unp.getColorPath(), false, false); } PropHandler.track(go); redoOb = new UncreateObject(umo.id); } else { redoOb = new UnmoveObject(umo.id, go.transform.position, go.transform.rotation, go.transform.localScale, umo.propName); } go.transform.position = umo.position; go.transform.rotation = umo.rotation; go.transform.localScale = umo.localScale; return(redoOb); } UnpaintObject upo = ro as UnpaintObject; if (upo != null) { GameObject go = PropHandler.objectFromId(upo.id); return(Prop.paintFromPath(go, upo.getNewColor(), upo.getColorPath(), true, false)); } return(null); }
public override void handUpdate(GameObject handOb, bool pinch) { sel.select(handOb); Color color = Color.gray; if (sel.getSelected() != null) { color = Color.red; if (pinch) { UnmoveObject unmoveObject = new UnmoveObject(sel.getSelected().propObjectId, sel.getSelected().gameObject.transform, sel.getSelected().name, sel.getSelected().paintHistory); RedoManager.addRedoObject(unmoveObject); PropHandler.untrack(sel.getSelected().gameObject, true); } } sel.drawLine(color); }