/// <summary> /// Paint機能 /// </summary> /// <param name="data">発行されたメッセージの値である構造体</param> private void paint(HpInputData data) { switch (data.InputState) { //入力した瞬間 case HpInputState.InputDown: //書き始めたらもうUndoできなくする foreach (Transform child in _paintTrailRendererParent) { if (child.gameObject.activeInHierarchy == false) { Destroy(child.gameObject); } } Debug.Log("PaintStart"); //ペイントオブジェクトを生成 _tmpObj = Instantiate(_paintTrailRendererPrefab, data.InputPosition, Quaternion.identity); _tmpObj.transform.parent = _paintTrailRendererParent; break; //入力中 case HpInputState.Input: Debug.Log("Painting"); //ペイントオブジェクトを入力位置に追従 _tmpObj.transform.position = data.InputPosition; break; //入力終了 case HpInputState.NoInput: //なんか書くことあれば _tmpObj = null; break; } }
/// <summary> /// Undo機能 /// </summary> /// <param name="data">発行されたメッセージの値である構造体</param> private void undo(HpInputData data) { List <Transform> tmpList = new List <Transform>(); foreach (Transform child in _paintTrailRendererParent) { tmpList.Add(child); } foreach (Transform child in tmpList) { if (child.gameObject.activeInHierarchy == false) { child.gameObject.SetActive(true); return; } } }
/// <summary> /// Redo機能 /// </summary> /// <param name="data">発行されたメッセージの値である構造体</param> private void redo(HpInputData data) { List <Transform> tmpList = new List <Transform>(); foreach (Transform child in _paintTrailRendererParent) { tmpList.Add(child); } //Listを反転させる tmpList.Reverse(); foreach (Transform child in tmpList) { if (child.gameObject.activeInHierarchy) { child.gameObject.SetActive(false); return; } } }