예제 #1
0
        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;
            }
        }
예제 #2
0
 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);
     }
 }
예제 #3
0
        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;
            }
        }