Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
Adom | Дата: Вторник, 19 Ноября 2013, 15:51 | Сообщение # 4961 |
Печенька!
Сейчас нет на сайте
| Как можно узнать с какой силой объект попал в игрока ?
|
|
| |
PoqXert | Дата: Вторник, 19 Ноября 2013, 16:06 | Сообщение # 4962 |
постоянный участник
Сейчас нет на сайте
| Данные для расчёта силы: rigidbody.velocity rigidbody.mass Формулы нагуглить не долго.
Расширения для Unity3D Блог программиста - PoqXert.ru
|
|
| |
inventrix | Дата: Вторник, 19 Ноября 2013, 18:18 | Сообщение # 4963 |
участник
Сейчас нет на сайте
| Можно как то проверить столкновение без ригидбоди? Рейкаст себя странно ведет, объекты немного смещаются, чего быть как бы не должно...
|
|
| |
allods | Дата: Вторник, 19 Ноября 2013, 19:43 | Сообщение # 4964 |
почти ветеран
Сейчас нет на сайте
| Цитата inventrix ( ) Можно как то проверить столкновение без ригидбоди? Рейкаст себя странно ведет, объекты немного смещаются, чего быть как бы не должно...
OnTriggerEnter или OnCollisionEnter ...Stay... Exit
|
|
| |
inventrix | Дата: Вторник, 19 Ноября 2013, 21:43 | Сообщение # 4965 |
участник
Сейчас нет на сайте
| OnCollisionEnter он же проверяет только объекты с ригидбоди, счас Stay попробую Добавлено (19.11.2013, 21:09) --------------------------------------------- Ну и stay без ригидбоду отказался работать, не ужели в юнити нету команды для нахождения столкновений между не физическими объектами, бред какой то... Добавлено (19.11.2013, 21:43) --------------------------------------------- Подскажите, в таком случае, почему рейкаст немного по разному реагирует? Условие такое: пускаю луч в ту сторону куда едет куб1, луч встретил куб2 на растоянии 0.5, то стоим, останавливается куб1 всегда в разных местах, которые отличаются совсем чуть-чуть, но все же, хотелось бы что бы куб1 тормозил всегда на 1 расстоянии...
|
|
| |
allods | Дата: Вторник, 19 Ноября 2013, 22:23 | Сообщение # 4966 |
почти ветеран
Сейчас нет на сайте
| можно чуть оттолкнуть объект если дистанция <1 пока дистанция не будет 1, но это немного извращение
|
|
| |
inventrix | Дата: Вторник, 19 Ноября 2013, 22:27 | Сообщение # 4967 |
участник
Сейчас нет на сайте
| Ну я вот так и подумал, вообще мне не понятна причина такого разного реагирования на 1 и то же действие, бесит уже прям!
|
|
| |
seaman | Дата: Вторник, 19 Ноября 2013, 23:44 | Сообщение # 4968 |
старожил
Сейчас нет на сайте
| Видимо причина в FixedUpdate. Физика в нем просчитывается.
|
|
| |
White9 | Дата: Среда, 20 Ноября 2013, 16:40 | Сообщение # 4969 |
заслуженный участник
Сейчас нет на сайте
| Вопрос отпал )
Сообщение отредактировал White9 - Среда, 20 Ноября 2013, 16:48 |
|
| |
Ammoku | Дата: Пятница, 22 Ноября 2013, 23:10 | Сообщение # 4970 |
частый гость
Сейчас нет на сайте
| Возник такой вопрос: Есть пачка скриптов, WxLx где x - цыферки разные. Присоединяю кодом один из них. Что присоединять указано в другом объекте - "data". Код private var lvlinfo: data;
function Start () { lvlinfo = GameObject.Find("data").GetComponent(data); gameObject.AddComponent ("W"+lvlinfo.world+"L"+lvlinfo.level); } Все присоединяется норм, но как теперь добыть переменные из WxLx? Пишу Код print(GetComponent("W"+lvlinfo.world+"L"+lvlinfo.level).level); Говорит что level не есть мембер W1L1, но я то точно знаю, что там есть такая переменная, и она точно public...
Сообщение отредактировал Ammoku - Пятница, 22 Ноября 2013, 23:20 |
|
| |
allods | Дата: Суббота, 23 Ноября 2013, 21:32 | Сообщение # 4971 |
почти ветеран
Сейчас нет на сайте
| только седня установил версию 4,3. Решил забилдить свой проект в апк но вылетает такая хрень, раньше никогда небыло
Добавлено (23.11.2013, 19:45) --------------------------------------------- Я все поставил, но я не совсем понял что именно мне надо выставить и как Добавлено (23.11.2013, 19:49) --------------------------------------------- Пфф просто надо в BundleIdentifier поставит "сom." перед названием! к примеру ВасяКопмания > сом.ВасяКомпания Добавлено (23.11.2013, 21:32) --------------------------------------------- есть объект с ригд бади, нано узнать двигается он или нет? как можно получить его двигательность ?
Сообщение отредактировал allods - Суббота, 23 Ноября 2013, 19:44 |
|
| |
PoqXert | Дата: Воскресенье, 24 Ноября 2013, 01:15 | Сообщение # 4972 |
постоянный участник
Сейчас нет на сайте
| rigidbody.velocity
Расширения для Unity3D Блог программиста - PoqXert.ru
|
|
| |
error111 | Дата: Воскресенье, 24 Ноября 2013, 04:27 | Сообщение # 4973 |
заслуженный участник
Сейчас нет на сайте
| Туплю по следующему вопросу. Есть паблик класс в котором описан моб:
Код public class Mob { private string _name; private int _attack; public Mob(){ _name = ""; _attack = 0; } public string Name{ get{ return _name;} set{_name = value;} } public int Attack{ get{ return _attack;} set{_attack = value;} } }
public enum MobName{ Rat, Bat, Slime, Goblin, Hound, Ghoul, Lizardman, Orc, Undead, Deamon, }
public enum MobAttack : int{ Rat = 1, Bat = 1, Slime = 2, Goblin = 3, Hound = 4, Ghoul = 5, Lizardman = 5, Orc = 6, Undead = 7, Deamon = 9, }
Есть другой класс MobGenerator, который будет висеть на объекте в сцене и на старте генерировать всех мобов и складывать их в массив для последующего рандомного вызова оттуда:
Код using UnityEngine; using System.Collections; using System;
public class MobGenerator : MonoBehaviour {
private Mob[] _mob; // creating array of Mob
// Use this for initialization void Start () { _mob = new Mob[Enum.GetValues(typeof(MobName)).Length]; // setting length of Mob array
SetupMobs(); // populating Mob array } // This function populates Mob array private void SetupMobs(){ for (int cnt = 0; cnt < _mob.Length; cnt++){ _mob[cnt] = new Mob(); _mob[cnt].Name = ((MobName)cnt).ToString(); _mob[cnt].Attack = (int)((MobAttack)cnt); //????? Debug.Log(_mob[cnt].Name + " : " + _mob[cnt].Attack); } } }
Вопрос: как из enum MobAttack подставить интовые значения атаки в _mob[cnt].Attack (строка в генераторе с ?????). В настоящий момент код вытягивает только нумерацию, то есть 0,1,2,3,4 и т.д. Мне же там нужны зачения. Как получить значение конкретной строки перечисления? Или вообще как то по другому это заполнение моба сделать?
Сообщение отредактировал error111 - Воскресенье, 24 Ноября 2013, 04:28 |
|
| |
Labirintik | Дата: Воскресенье, 24 Ноября 2013, 06:36 | Сообщение # 4974 |
постоянный участник
Сейчас нет на сайте
| Цитата error111 ( ) интовые Цитата error111 ( ) В настоящий момент код вытягивает только нумерацию, а разве INTовые это и не нумерация? Если не прав, подправьте меня.
|
|
| |
Ammoku | Дата: Воскресенье, 24 Ноября 2013, 06:37 | Сообщение # 4975 |
частый гость
Сейчас нет на сайте
| *удалено* (не обновил страницу, ответил на отвеченное) мне кто-нить помогите плз
Сообщение отредактировал Ammoku - Воскресенье, 24 Ноября 2013, 06:40 |
|
| |
error111 | Дата: Воскресенье, 24 Ноября 2013, 06:56 | Сообщение # 4976 |
заслуженный участник
Сейчас нет на сайте
| Цитата Labirintik ( ) а разве INTовые это и не нумерация?
Не, конечно нумерация это тоже инт. Но в enum можно записать перечисление интов. В моем случае это выглядит так:
Код public enum MobAttack : int{ Rat = 1, Bat = 1, Slime = 2, Goblin = 3, Hound = 4, Ghoul = 5, Lizardman = 5, Orc = 6, Undead = 7, Deamon = 9, }
И мне нужно выдергивать именно значение после =, а не индекс элемента. Это однозначно можно как-то сделать, ведь если к примеру в интересующей меня строке написать Код _mob[cnt].Attack = (int)MobAttack.Bat; //????? , то атаке присвоится значение после =.
[Shmup/RPG] Fantasy Shmup!
|
|
| |
Labirintik | Дата: Воскресенье, 24 Ноября 2013, 08:41 | Сообщение # 4977 |
постоянный участник
Сейчас нет на сайте
| Цитата error111 ( ) Но в enum можно записать перечисление интов. В моем случае это выглядит так: Enum же вроде бы используют именно только для перечисление, то есть два разных моба не могут иметь одно значение или я не прав?
|
|
| |
error111 | Дата: Воскресенье, 24 Ноября 2013, 09:56 | Сообщение # 4978 |
заслуженный участник
Сейчас нет на сайте
| Цитата Labirintik ( ) Enum же вроде бы используют именно только для перечисление, то есть два разных моба не могут иметь одно значение или я не прав?
Ну так у меня и есть перечисление: Rat, Bat, Slime и т.д. А числа после = это всего лишь их значения. Почему они не могут быть одинаковыми?
[Shmup/RPG] Fantasy Shmup!
|
|
| |
Labirintik | Дата: Воскресенье, 24 Ноября 2013, 10:38 | Сообщение # 4979 |
постоянный участник
Сейчас нет на сайте
| Цитата error111 ( ) А числа после = это всего лишь их значения. Почему они не могут быть одинаковыми? числа после = это их Ид. Так как если не обозначать их, они будут идти по порядку
|
|
| |
NEBR | Дата: Воскресенье, 24 Ноября 2013, 14:30 | Сообщение # 4980 |
почти ветеран
Сейчас нет на сайте
| error111, я собрал вашу сценку и вот что понял. Если значения в MobAttack не повторяются, то будет работать следущий скрипт. Ваш фрагмент в SetupMobs() я заккоментировал
Код using UnityEngine; using System.Collections; using System;
public class MobGenerator : MonoBehaviour {
private Mob[] _mob; // creating array of Mob
// Use this for initialization void Start () { _mob = new Mob[Enum.GetValues(typeof(MobAttack)).Length]; // setting length of Mob array
SetupMobs(); // populating Mob array } // This function populates Mob array private void SetupMobs(){ foreach (var value in Enum.GetValues(typeof(MobAttack))) { Debug.Log(((MobAttack) value) + ":" + (int) value ); } /* for (int cnt = 0; cnt < _mob.Length; cnt++){ _mob[cnt] = new Mob(); _mob[cnt].Name = ((MobName)cnt).ToString(); _mob[cnt].Attack = (int)((MobAttack)cnt); //????? Debug.Log(_mob[cnt].Name + " : " + _mob[cnt].Attack); } */ } }
если значения повторяются, то они не выводятся в лог. Чтобы проверить этот скрипт я изменил MobAttack на следующий
Код public enum MobAttack : int{ Rat = 10, Bat = 15, Slime = 20, Goblin = 25, Hound = 30, Ghoul = 35, Lizardman = 40, Orc = 45, Undead = 50, Deamon = 55, }
Сначала я пробовал методом enum getName указывать имя, после него хотел вывести с помощью getValues значение константы, но не получалось использовать все это в одном цикле. Так что если есть необходимость использовать одинаковые значения атаки у нескольких мобов, можно сделать вывод в лог в двух разных функциях. Первая выведет только имена, вторая - только их значения
инфу брал в основном тут
King Size #Gamiron12
Сообщение отредактировал NEBR - Воскресенье, 24 Ноября 2013, 14:32 |
|
| |
|