danilaxxl danilaxxl

CollectableItemData.cs

[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]

GoloGames GoloGames

vadya_ivan, рад, что вам игра показалась интересной : )

P.S. Кстати уже доступна бесплатная демо-версия в Steam

vadya_ivan vadya_ivan

Визуал, задумка, музыка , механики, все в цель

GoloGames GoloGames

Ato_Ome, спасибо за позитивные эмоции, будем стараться : )

Ato_Ome Ato_Ome

Потрясающий результат, все так четенько, плавненько)
То ли саунд, то ли плавность напомнили мне игрушку World of Goo, удачи вам в разработке и сил побольше дойти до релиза!)

Cute Fox Cute Fox

Graphics are a little cool, good HD content. But this game doesn't cause nary interest me.
However the game is well done.

GMSD3D GMSD3D

Почему действие после всех условий выполняется?
[step another object]

Zemlaynin Zemlaynin

Jusper, Везде, но наугад строить смысла нет. Нужно разведать сперва территорию на наличие ресурсов.

Jusper Jusper

Zemlaynin, а карьеры можно будет везде запихать?
Или под них "особые" зоны будут?

Zemlaynin Zemlaynin

Это так скажем тестовое строительство, а так да у города будет зона влияния которую нужно будет расширять.

Jusper Jusper

А ссылка есть?

Jusper Jusper

Я не оч понял из скриншота, как вообще работает стройка. У игрока будет как бы поле строительства?

split97 split97

в игру нужно добавить время песочные часы в инвентаре, пока бегаешь наберается усталость и ты очень тормозной мобильный враг просто убевает

split97 split97

в игру нужно добавить время песочные часы в инвентаре, пока бегаешь наберается усталость и ты очень тормозной мобильный враг просто убевает

ViktorJaguar ViktorJaguar

Почему я нигде не могу найти нормальный туториал, где покажут как экипировать предмет (например, меч) в определенную (выделенную под оружие) ячейку???

Логотип проекта Unity

GUISkinViewer - окно для просмотра стилей

Довольно простое окно, обеспечивающее быстрый просмотр стилей скинов во всех 8 состояниях.
Особенно полезно для просмотра больших скинов, например нативного скина Unity.
Для установки закиньте скрипт в Assets/Editor/GUISkinViewer.cs
Вызывается через меню Window/Supporting/GUISkinViewer.
Просто перетаскиваете на поле скин и смотрите.

GUISkinViewer - окно для просмотра стилей — Unity — DevTribe: инди-игры, разработка, сообщество
using System;
using System.Linq;
using System.Reflection;
using UnityEngine;

namespace UnityEditor
{
    public class GUISkinViewer : EditorWindow
    {
        [MenuItem("Window/Supporting/GUISkin Viewer")]
        public static void Create()
        {
            GetWindow<GUISkinViewer>(true, "GUISkin Viewer", true);
        }

        public GUISkin guiSkin;
        public Vector2 scrollPos;
        public int index = 0;

        public string find = "";

        public GUIStyle[] showStyles;

        public void OnGUI()
        {
            var up = Event.current.type == EventType.keyDown && Event.current.keyCode == KeyCode.UpArrow;
            var down = Event.current.type == EventType.keyDown && Event.current.keyCode == KeyCode.DownArrow;
            GUILayout.BeginHorizontal(GUILayout.ExpandHeight(true));
            {
                GUILayout.BeginVertical(GUILayout.Width(300));
                {
                    find = EditorGUILayout.TextField("Find: ", find);
                    GUILayout.BeginHorizontal();
                    guiSkin = EditorGUILayout.ObjectField("GUISkin", guiSkin, typeof(GUISkin), false) as GUISkin;

                    if (GUILayout.Button("...", "minibutton", GUILayout.ExpandWidth(false)))
                    {
                        var a = new GenericMenu();
                        a.AddItem(new GUIContent("LightSkin"), false, () => guiSkin = EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector));
                        a.AddItem(new GUIContent("DarkSkin"), false, () => guiSkin = EditorGUIUtility.GetBuiltinSkin(EditorSkin.Scene));
                        a.ShowAsContext();
                    }
                    GUILayout.EndHorizontal();
                    GUI.SetNextControlName("two");
                    if (guiSkin != null)
                    {
                        var styles = guiSkin.customStyles;
                        showStyles = styles.Where(x => x.name.IndexOf(find, StringComparison.OrdinalIgnoreCase) != -1).ToArray();
                        scrollPos = GUILayout.BeginScrollView(scrollPos);
                        var array = showStyles.ToList().Select(x => x.name).ToArray();
                        var command2 = new GUIStyle("CN EntryBackOdd") { margin = new RectOffset() };
                        index = GUILayout.SelectionGrid(Mathf.Clamp(index, 0, array.Length - 1), array, 1, command2);
                        if (index >= showStyles.Length)
                            index = 0;
                        GUILayout.EndScrollView();
                        GUILayout.BeginHorizontal();
                        if (index >= 0 && index < showStyles.Length)
                        {
                            GUILayout.Label(showStyles[index].name);
                            if (GUILayout.Button("copy"))
                                EditorGUIUtility.systemCopyBuffer = showStyles[index].name;
                        }
                        GUILayout.EndHorizontal();
                    }
                }
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                if (guiSkin != null && showStyles.Length != 0)
                {
                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.BeginVertical(GUILayout.ExpandWidth(true));
                        {
                            DrawStyle(x => x.normal, "normal");
                            DrawStyle(x => x.hover, "hover");
                            DrawStyle(x => x.active, "active");
                            DrawStyle(x => x.focused, "focused");
                        }
                        GUILayout.EndVertical();
                        if (GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
                            GUI.FocusControl("two");

                        GUILayout.BeginVertical(GUILayout.ExpandWidth(true));
                        {
                            DrawStyle(x => x.onNormal, "onNormal");
                            DrawStyle(x => x.onHover, "onHover");
                            DrawStyle(x => x.onActive, "onActive");
                            DrawStyle(x => x.onFocused, "onFocused");
                        }
                        GUILayout.EndVertical();
                        if (GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
                            GUI.FocusControl("two");
                    }
                    GUILayout.EndHorizontal();

                    var methods = typeof(GUIStyle).GetMethods().Where(x => x.Name.StartsWith("get_") && x.ReturnType != typeof(GUIStyleState)).ToArray();
                    foreach (MethodInfo method in methods)
                        GUILayout.Label(string.Format("<b>{0}</b>: {1}", method.Name.Substring(4), method.Invoke(showStyles[index], null)), new GUIStyle("label") { richText = true });
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();

            if (guiSkin == null)
                return;
            var e = Event.current;
            //            if (e.type == EventType.KeyDown)
            {
                if (up)
                {
                    index--;
                    if (index < 0)
                        index = 0;
                    e.Use();
                    Repaint();
                }
                if (down)
                {
                    index++;
                    if (index >= showStyles.Length)
                        index = showStyles.Length - 1;
                    e.Use();
                    Repaint();
                }
            }

        }

        public void DrawStyle(Func<GUIStyle, GUIStyleState> state, string text)
        {
            if (guiSkin != null)
            {
                var style = new GUIStyle(showStyles[index]) { normal = state.Invoke(showStyles[index]) };
                GUILayout.Box(text, style);
            }
        }
    }
}
GUISkinViewer - окно для просмотра стилей — Unity — DevTribe: инди-игры, разработка, сообщество

Смотрите также:


Комментарии



Так до конца и не разобрался, каким образом растягиваются текстуры в кастомных гуискинах.

RSQR, что ты имеешь ввиду под кастомными *гуискинами* и растяжением? Думаю я мог бы объяснить.
Ты наверное имел ввиду кастомные гуистили в гуискине.

Если ты про растяжение текстуры фона то там все очень просто - они растягиваются по дефолту.
Есть параметр border который отвечает сколько пикселей нужно отобразить в нормальном размере с каждой стороны. А все что остается как и прежде растянется.

Или ты хотел узнать что-то другое?

Extravert:

RSQR, что ты имеешь ввиду под кастомными *гуискинами* и растяжением? Думаю я мог бы объяснить.
Ты наверное имел ввиду кастомные гуистили в гуискине.

Если ты про растяжение текстуры фона то там все очень просто - они растягиваются по дефолту.
Есть параметр border который отвечает сколько пикселей нужно отобразить в нормальном размере с каждой стороны. А все что остается как и прежде растянется.

Или ты хотел узнать что-то другое?

Да, про это хотел узнать. Квадратная текстура растягивается непропорционально. Вот допустим у стандартного скина юнити текстура - круг, который растягивается в зависимости от элемента. Как растянуть текстуру без артефактов и какого размера текстура должна быть?

Обновил скрипт.

  • Теперь отображает поля у стиля
  • Позволяет выбрать Light/Dark скин редактора
  • Немного изменился внешний вид списка слева на чуть менее убогий
Справка