public override void OnInspectorGUI() { base.OnInspectorGUI(); DigSpaceRule digSpaceRule = (DigSpaceRule)target; if (GUI.changed && digSpaceRule.CheckIfSizeHasToChange()) { Debug.Log("Reset"); digSpaceRule.SetArray(digSpaceRule.sizeX, digSpaceRule.sizeY); } for (int i = 0; i < digSpaceRule.sizeY; i++) { EditorGUILayout.BeginHorizontal(GUILayout.Width(digSpaceRule.sizeX * 5)); for (int j = 0; j < digSpaceRule.sizeX; j++) { digSpaceRule.SetAtPosition(j, i, EditorGUILayout.Toggle(digSpaceRule.GetAtPosition(j, i))); } EditorGUILayout.EndHorizontal(); } if (GUILayout.Button("Set dirty")) { SetAsDirty(); Debug.Log("Dirty"); } }
public void Dig(Vector3 pos, DigSpaceRule space) { int offsetX = 0;// (space.sizeX / 2); int offsetY = (space.sizeY / 2); for (int i = 0; i < space.sizeY; i++) { for (int j = 0; j < space.sizeX; j++) { if (space.GetAtPosition(j, i)) { Vector3 marker = this.transform.up * (j - offsetX); marker += this.transform.right * (i - offsetY); tilemap.SetTile(Vector3Int.FloorToInt(marker + this.transform.position), space.replacementTile); } } } }