Всем здрасте. Такая проблема, темные темы на Эклипс убого ставятся. :\ Скроллбары и прочее не меняются. Дофига гуглил уже, делал то, что советуют - ничего не помогает. Может кто сталкивался с таким?
Как должно:
Как получается:
Как запилить замену остального интерфейса, а не просто подсветки, как в MVS? :\
Сообщение отредактировал choopie - Вторник, 17 Марта 2015, 15:01
Как мне обратиться, например, к методу getRadius наследуемого класса Circle? Для объекта в shapes[5], к примеру. :\ В main задан массив классов типа TwoDShape, и через него получается обратиться только к методам базового класса.
Пасаны, не подскажите, как делают такую шнягу? Тайм-код прилагается. Может у вас где есть ссылочка на бесплатный ассет или что-то в этом роде. Я что-то даже хз как загуглить такую систему. Ну, типа создание штуки, для работы с кодом\скриптами во внутреннем интерфейсе Юнити.
Сообщение отредактировал choopie - Четверг, 12 Февраля 2015, 13:56
Сижу-копаюсь, вот к чему пришел: В Start работает вот так, например:
Код
inventory.Add (new Item()); inventory[0] = database.items[1];
Т.е. в принципе логично, в inventory[0] нет даже пустого класса - то и не добавляет. Если же прежде добавить пустой, то и запихивать на его место можно другие.
Но в видео все работает и без этого. :\ Так придется перед каждым итемом добавлять пустой, по порядку добавляется. На определенное место то никак не запилить. :\
Добавлено (10 февраля 2015, 22:25) --------------------------------------------- Тьфу ты, нашел ошибку. Он собственно так и делал, просто я пропустил это. Ну хоть сам догадался, что надо сделать.
Код
for(int i = 0; i < (slotsX * slotsY); i++){ slots.Add (new Item()); inventory.Add (new Item()); }
А у меня было просто:
Код
for(int i = 0; i < (slotsX * slotsY); i++) slots.Add (new Item());
Добавлено (10 февраля 2015, 22:28) --------------------------------------------- Почему-то дичайше лагать начало при отрисовке инвентаря, хотя раньше было все ок.
Всем привет. Пилю интвентарь, как в видео, по этой ссылочке. И есть проблема. :\ Не работает штука, которая работает у автора в видео. Судя по комментам, раньше работало у всех, а потом тоже перестало. Решения так и нету. В общем вот 3 скрипта:
Код
using UnityEngine; using System.Collections;
[System.Serializable] public class Item{ public string itemName; public int itemID; public string itemDesc; public Texture2D itemIcon; public int itemPower; public int itemSpeed; public ItemType itemType;
public enum ItemType{ Weapon, Consumable, Quest }
public Item(string name, int id, string desc, int power, int speed, ItemType type){ itemName = name; itemID = id; itemDesc = desc; itemIcon = Resources.Load<Texture2D>("Item Icons/" + name); itemPower = power; itemSpeed = speed; itemType = type; }
public Item(){
} }
Код
using UnityEngine; using System.Collections; using System.Collections.Generic;
public class ItemDatabase : MonoBehaviour { public List<Item> items = new List<Item>();
void Awake(){ items.Add (new Item("Bronze Sword", 0, "A sword that is made of bronze", 2, 2, Item.ItemType.Weapon)); items.Add (new Item("Iron Axe", 1, "An axe that is made of iron", 3, 1, Item.ItemType.Weapon)); } }
Код
using UnityEngine; using System.Collections; using System.Collections.Generic;
public class Inventory : MonoBehaviour { public int slotsX, slotsY; public GUISkin skin; public List<Item> inventory = new List<Item>(); public List<Item> slots = new List<Item>(); private ItemDatabase database; private bool showInventory;
void Start () { for(int i = 0; i < (slotsX * slotsY); i++) slots.Add (new Item());
Так вообще не работает, хотя в видео также и все нормально работает.
Также похожая конструкция не работает просто в функции Start:
Код
inventory[0] = database.items[1];
Хотя в видео все четко.
Работает только так:
Код
inventory.Add(database.items[1]);
А при использовании предыдущей пишет:
ArgumentOutOfRangeException: Argument is out of range. Parameter name: index System.Collections.Generic.List`1[Item].set_Item (Int32 index, .Item value) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:639) Inventory.Start () (at Assets/Scripts/Inventory.cs:19)
Сообщение отредактировал choopie - Вторник, 10 Февраля 2015, 22:02
Просто часто когда гуглишь какой-то вопрос\проблему, находишь темы на форумах, где кто-то таким же вопросом задается, и разочаровываешься, когда натыкаешься на ответ автора "все, разобрался" \ "все, сделал". А самого объяснения то и нету. х) Поэтому всегда оставляю решение, если сам где-то задаю вопрос. Скрипт работает - и ладно, может кому пригодится, если его гугл сюда приведет. :D
Сообщение отредактировал choopie - Понедельник, 09 Февраля 2015, 14:11