private void DrawRule(Rect rect, IList list, int index) { var rule = _ruleOverrideTile.Rules[index]; var overrideRule = _ruleOverrideTile.OverrideTile.Rules[index]; var width = EditorGUIUtility.singleLineHeight * 3 + RectHelper.VerticalSpace * 2; var referenceRect = RectHelper.TakeLine(ref rect); var isReferenceRect = RectHelper.TakeWidth(ref referenceRect, referenceRect.width * 0.5f - RectHelper.HorizontalSpace); RectHelper.TakeHorizontalSpace(ref referenceRect); var matrixRect = RectHelper.TakeWidth(ref rect, width); RectHelper.TakeHorizontalSpace(ref rect); DrawRuleMatrix(_ruleOverrideTile.OverrideTile, matrixRect, overrideRule); rule.UseReference = EditorGUI.Toggle(isReferenceRect, _isReferenceContent.Content, rule.UseReference); if (rule.UseReference) { rule.Tile.Sprite = null; rule.Reference = EditorGUI.ObjectField(referenceRect, _referenceContent, rule.Reference, typeof(TileBase), false) as TileBase; if (rule.Reference == _ruleOverrideTile) { rule.Reference = null; } } else { rule.Tile = TileTransformInfoControl.Draw(rect, GUIContent.none, rule.Tile); rule.Reference = null; } }
public override void OnInspectorGUI() { using (new UndoScope(_checkerboardTile, false)) { EditorGUILayout.LabelField(_firstContent.Content); _checkerboardTile.First = TileTransformInfoControl.Draw(GUIContent.none, _checkerboardTile.First); EditorGUILayout.LabelField(_secondContent.Content); _checkerboardTile.Second = TileTransformInfoControl.Draw(GUIContent.none, _checkerboardTile.Second); } }
private void DrawDefaultRule() { EditorGUILayout.LabelField(_defaultRuleContent.Content); _ruleOverrideTile.DefaultRule.UseReference = EditorGUILayout.Toggle(_isReferenceContent.Content, _ruleOverrideTile.DefaultRule.UseReference); if (_ruleOverrideTile.DefaultRule.UseReference) { _ruleOverrideTile.DefaultRule.Tile.Sprite = null; _ruleOverrideTile.DefaultRule.Reference = EditorGUILayout.ObjectField(_referenceContent, _ruleOverrideTile.DefaultRule.Reference, typeof(TileBase), false) as TileBase; if (_ruleOverrideTile.DefaultRule.Reference == _ruleOverrideTile) { _ruleOverrideTile.DefaultRule.Reference = null; } } else { _ruleOverrideTile.DefaultRule.Tile = TileTransformInfoControl.Draw(GUIContent.none, _ruleOverrideTile.DefaultRule.Tile); _ruleOverrideTile.DefaultRule.Reference = null; } }