Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
darkduelist | Дата: Понедельник, 24 Февраля 2014, 22:52 | Сообщение # 5681 |
частый гость
Сейчас нет на сайте
| Народ предложите альтернативу для старта диалога... Игра с видом сверху в 2D, управление только кнопками... Код void OnTriggerStay2D(Collider2D other) { if(Input.GetButtonDown("Z") && _GameController.Dialog == false) { other.GetComponent<Dialog_NPC>().DialogStart(this.GetComponent<CharacterScript>().Name); } } Данный вариант не всегда корректно срабатывает...
|
|
| |
beril | Дата: Понедельник, 24 Февраля 2014, 23:25 | Сообщение # 5682 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Попробуй создать еще bool когда входит триггер включать переменную на true, выходит выключай и используй в Update
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Adom | Дата: Вторник, 25 Февраля 2014, 19:03 | Сообщение # 5683 |
Печенька!
Сейчас нет на сайте
| Как пользоваться enum ? Просто когда смотрел урок от Alcatras там он упоминал про enum. Вот только что это я так и не понял )).
|
|
| |
NEBR | Дата: Вторник, 25 Февраля 2014, 19:05 | Сообщение # 5684 |
почти ветеран
Сейчас нет на сайте
| Adom, http://msdn.microsoft.com/ru-ru/library/sbbt4032.aspx
King Size #Gamiron12
|
|
| |
lentinant | Дата: Вторник, 25 Февраля 2014, 21:59 | Сообщение # 5685 |
ленивый программист
Сейчас нет на сайте
| Adom, это переменная, которая может принимать только определенные значения. К примеру, чтобы охарактеризовать пол персонажа, можно создать довольно простой энум с двумя значениями - male и female. Как и структуры, сначала надо определить сам энум, а потом уже создавать переменные непосредственно энума. Код enum gender { g_male, g_female, }
public gender characterGender;
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
Adom | Дата: Среда, 26 Февраля 2014, 14:01 | Сообщение # 5686 |
Печенька!
Сейчас нет на сайте
| Вот еще вопрос я делал все тот-же инвентарь по урокам Alcatras так вот когда я назначаю в List Item то когда запускаю игру они от туда выходят т.е нужно заново при запущенной игре переназначать эти item. Кто поможет ?
Добавлено (26.02.2014, 14:01) --------------------------------------------- Вот код. Код using UnityEngine; using System.Collections; using System.Collections.Generic;
public class Inventory : MonoBehaviour { public List<Item> items = new List<Item>(); public bool show = true; public GUISkin skin; public MouseLook camera; public MouseLook player; public float MaxMass=50; public float CurMass=0; [HideInInspector] public Item currItem; // Use this for initialization void Start () { RebuildMass(); } void AddMass(float mass){ CurMass +=mass;
} void RebuildMass(){ CurMass=0; for(int i=0; i < items.Count; i++){ if(items[i]=null) if(items[i].count > 0){ CurMass += items[i].count * items[i].mass; } } } // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.Tab)){ show = !show; } if(show){ player.enabled = false; camera.enabled = false; }else{ player.enabled = true; camera.enabled = true; } } void OnGUI(){ if(show){ GUI.skin = skin; GUI.Window(0,new Rect(0f,0f,Screen.width,Screen.height),InventoryBody,"Inventory"); } } public void Use(Item item){ item.count--; RemoveItem(item); currItem =null; } public void RemoveItem(Item item){ for(int i = 0; i < items.Count; i++){ if(items[i]==item){ items[i]=null; } } } void InventoryBody (int id){ if(GUI.Button(new Rect(700f, Screen.height - 200f,150f,50f),"Выход")){ show = false; currItem = null; player.enabled = true; camera.enabled = true; } if(currItem){ GUI.DrawTexture(new Rect(600f,50f,80f,80f),currItem.texture); GUI.color = Color.red; GUI.Label(new Rect(700f,50f,400f,500f),"Описание"); GUI.color = Color.white; GUI.Box(new Rect(600f,50f,400f,300f),""); GUI.Label(new Rect(700f,100f,400f,300f),currItem.discription); if(GUI.Button(new Rect(700,290,150,50),"Отмена")){ currItem = null; } if(GUI.Button(new Rect(700,230,150,50),"Использовать")){ Use(currItem); } } GUILayout.BeginArea(new Rect(60f,60f,100f,600f)); for(int i = 0; i < 5; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(160f,60f,100f,600f)); for(int i = 5; i < 10; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(260f,60f,100f,600f)); for(int i = 10; i < 15; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(360f,60f,100f,600f)); for(int i = 15; i < 20; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(460f,60f,100f,600f)); for(int i = 20; i < 25; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); } }
Сообщение отредактировал Adom - Пятница, 28 Февраля 2014, 10:15 |
|
| |
Laush | Дата: Среда, 26 Февраля 2014, 21:36 | Сообщение # 5687 |
почти ветеран
Сейчас нет на сайте
| Почему на андроиде у меня не работают/нажимаются GUI.Button ? Только на компе работает.
[PC/Android/iOS/WEB] 30 Days to survive [PC] Dead Defense [PC] Саламандра - история пирата
|
|
| |
NEBR | Дата: Среда, 26 Февраля 2014, 22:44 | Сообщение # 5688 |
почти ветеран
Сейчас нет на сайте
| Laush, эти гуишные штуки не работают на андроиде
King Size #Gamiron12
|
|
| |
lentinant | Дата: Среда, 26 Февраля 2014, 23:21 | Сообщение # 5689 |
ленивый программист
Сейчас нет на сайте
| NEBR, все работает на андроиде. Laush, ты через Remote проверяешь?
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
Laush | Дата: Среда, 26 Февраля 2014, 23:34 | Сообщение # 5690 |
почти ветеран
Сейчас нет на сайте
| lentinant, да, через remote. даже когда компилирую и устанавливаю так апк файл на андроиде, всё равно не работает.
[PC/Android/iOS/WEB] 30 Days to survive [PC] Dead Defense [PC] Саламандра - история пирата
Сообщение отредактировал Laush - Среда, 26 Февраля 2014, 23:35 |
|
| |
lentinant | Дата: Среда, 26 Февраля 2014, 23:43 | Сообщение # 5691 |
ленивый программист
Сейчас нет на сайте
| Цитата Laush ( ) да, через remote. даже когда компилирую и устанавливаю так апк файл на андроиде, всё равно не работает. Ну, тогда не знаю. У меня на Remote тоже не работало, но в компилированной версии все работает.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
Laush | Дата: Четверг, 27 Февраля 2014, 00:07 | Сообщение # 5692 |
почти ветеран
Сейчас нет на сайте
| Вот, гляньте что не так, может с логикой что то не так? Скрипт
[PC/Android/iOS/WEB] 30 Days to survive [PC] Dead Defense [PC] Саламандра - история пирата
|
|
| |
PoqXert | Дата: Четверг, 27 Февраля 2014, 04:39 | Сообщение # 5693 |
постоянный участник
Сейчас нет на сайте
| Laush, а как ты на андроиде нажимаешь клавишу 'F'? Согласно твоему коду, у тебя кнопки не будут отображаться пока ты не нажмёшь 'F'.
Расширения для Unity3D Блог программиста - PoqXert.ru
|
|
| |
lolskill | Дата: Четверг, 27 Февраля 2014, 07:13 | Сообщение # 5694 |
почетный гость
Сейчас нет на сайте
| Как вставлять рекламу для андроид игр на юнити? Кто работал с рекламой в играх? У какой конторы рекламу лучше выбрать?
|
|
| |
Wookie | Дата: Четверг, 27 Февраля 2014, 11:47 | Сообщение # 5695 |
Decembear
Сейчас нет на сайте
| Как правильно пользоваться Цитата DrawTextureWithTexCoords ? Код GUI.DrawTextureWithTexCoords(new Rect(25,25,Screen.width - 50,Screen.height - 50),roll_layout,new Rect(0,0,1,1)); Код такой.
|
|
| |
Laush | Дата: Четверг, 27 Февраля 2014, 12:11 | Сообщение # 5696 |
почти ветеран
Сейчас нет на сайте
| PoqXert, извини, скрипт не тот скинул, это для компа скрипт. Вот для андроида вот
[PC/Android/iOS/WEB] 30 Days to survive [PC] Dead Defense [PC] Саламандра - история пирата
|
|
| |
Wookie | Дата: Четверг, 27 Февраля 2014, 14:55 | Сообщение # 5697 |
Decembear
Сейчас нет на сайте
| Объясню свою проблему - вызываю GUI.DrawTextureWithTexCoords, а в итоге текстура получается растянутая, а мне нужна только часть изображения.
|
|
| |
lentinant | Дата: Четверг, 27 Февраля 2014, 22:22 | Сообщение # 5698 |
ленивый программист
Сейчас нет на сайте
| Цитата lolskill ( ) Как вставлять рекламу для андроид игр на юнити? Кто работал с рекламой в играх? У какой конторы рекламу лучше выбрать? AdMob. Они сейчас принадлежат Гуглу, у них есть уже готовые плагины с примерами (в частности, для юнити), советы по имплементации, возможность подключать рекламу с различных источников.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
NEBR | Дата: Пятница, 28 Февраля 2014, 09:47 | Сообщение # 5699 |
почти ветеран
Сейчас нет на сайте
| Цитата Wookie ( ) Объясню свою проблему - вызываю GUI.DrawTextureWithTexCoords, а в итоге текстура получается растянутая, а мне нужна только часть изображения. Если нужна только часть изображения, можно пойти совсем другим путем. Текстуру засунуть в материал, и изменять offset и scale материала (программно тоже можно это делать). Цитата lentinant ( ) Ну, тогда не знаю. У меня на Remote тоже не работало, но в компилированной версии все работает. А я решил что не работает потому что не далее чем три дня назад делал билд... Там как раз if(GUI.Button) - и он не работал ни в Ремоте, ни в скомпилированном виде...
King Size #Gamiron12
Сообщение отредактировал NEBR - Пятница, 28 Февраля 2014, 09:49 |
|
| |
Adom | Дата: Пятница, 28 Февраля 2014, 10:15 | Сообщение # 5700 |
Печенька!
Сейчас нет на сайте
| Вот еще вопрос я делал все тот-же инвентарь по урокам Alcatras так вот когда я назначаю в List Item то когда запускаю игру они от туда выходят т.е нужно заново при запущенной игре переназначать эти item. Кто поможет ?
Вот код. Код using UnityEngine; using System.Collections; using System.Collections.Generic;
public class Inventory : MonoBehaviour { public List<Item> items = new List<Item>(); public bool show = true; public GUISkin skin; public MouseLook camera; public MouseLook player; public float MaxMass=50; public float CurMass=0; [HideInInspector] public Item currItem; // Use this for initialization void Start () { RebuildMass(); } void AddMass(float mass){ CurMass +=mass;
} void RebuildMass(){ CurMass=0; for(int i=0; i < items.Count; i++){ if(items[i]=null) if(items[i].count > 0){ CurMass += items[i].count * items[i].mass; } } } // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.Tab)){ show = !show; } if(show){ player.enabled = false; camera.enabled = false; }else{ player.enabled = true; camera.enabled = true; } } void OnGUI(){ if(show){ GUI.skin = skin; GUI.Window(0,new Rect(0f,0f,Screen.width,Screen.height),InventoryBody,"Inventory"); } } public void Use(Item item){ item.count--; RemoveItem(item); currItem =null; } public void RemoveItem(Item item){ for(int i = 0; i < items.Count; i++){ if(items[i]==item){ items[i]=null; } } } void InventoryBody (int id){ if(GUI.Button(new Rect(700f, Screen.height - 200f,150f,50f),"Выход")){ show = false; currItem = null; player.enabled = true; camera.enabled = true; } if(currItem){ GUI.DrawTexture(new Rect(600f,50f,80f,80f),currItem.texture); GUI.color = Color.red; GUI.Label(new Rect(700f,50f,400f,500f),"Описание"); GUI.color = Color.white; GUI.Box(new Rect(600f,50f,400f,300f),""); GUI.Label(new Rect(700f,100f,400f,300f),currItem.discription); if(GUI.Button(new Rect(700,290,150,50),"Отмена")){ currItem = null; } if(GUI.Button(new Rect(700,230,150,50),"Использовать")){ Use(currItem); } } GUILayout.BeginArea(new Rect(60f,60f,100f,600f)); for(int i = 0; i < 5; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(160f,60f,100f,600f)); for(int i = 5; i < 10; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(260f,60f,100f,600f)); for(int i = 10; i < 15; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(360f,60f,100f,600f)); for(int i = 15; i < 20; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); // GUILayout.BeginArea(new Rect(460f,60f,100f,600f)); for(int i = 20; i < 25; i++){ if(items[i]!=null){ if(GUILayout.Button(items[i].texture,GUILayout.Width(100f),GUILayout.Height(100f))){ currItem =items[i]; } }else{ GUILayout.Box("",GUILayout.Width(100f),GUILayout.Height(100f)); } } GUILayout.EndArea(); } }
|
|
| |
|