![](images/chestnut/misc/left.gif) |
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
29.01.2013, 23:53
|
#1201
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
стандартная анимация в Character Controller не работает
|
Это не понятно.
А на вопрос Вы не ответили - зачем в while? Один раз запустить анимацию - и пусть она сама воспроизводится.
|
(Offline)
|
|
30.01.2013, 00:02
|
#1202
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
вместо while - if
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2013, 00:04
|
#1203
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от seaman
Это не понятно.
А на вопрос Вы не ответили - зачем в while? Один раз запустить анимацию - и пусть она сама воспроизводится.
|
У меня в Юнити в скрипте не работает анимация. То есть если повесить на объект скрипт Character Controller и закинуть анимации в инспекторе, то они работать не будут. Если запустить один раз при прыжке, то есть баг: Допустим анимация длится 5 секунд, а я за 3 секунды запрыгнул на объект, то при следующем прыжке анимация прыжка воспроизводится не будет. Поэтому нужно сделать проверку на "На граунде игрок или нет", чтобы она воспроизводилась постоянно
|
(Offline)
|
|
30.01.2013, 00:10
|
#1204
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Вопросы от новичка
if(Input.GetKey(KeyCode.Space))
{
if(!controller.isGrounded)
{
animation.CrossFade("jump");
}
}
Сделал вот так. Тестил минуты 2-3. Багов не наблюдаю с воспроизведением анимации
|
(Offline)
|
|
30.01.2013, 09:55
|
#1205
|
Оператор ЭВМ
Регистрация: 28.12.2011
Сообщений: 25
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от seaman
А никто вроде про сайт не спрашивал. Спрашивали про выкладывание веб сборок.
Имхо: Если просто показать - лучше всего дропбокс. Если для распространения - или AssetStore, или Kongregate или свой выделенный/виртуальный сервер.
|
А смотря что подразумевается под "показать", я имел в виду показать в браузере, чтобы не отправлять полный билд коллегам.
Я может не понимаю механизма. Если даю ссыль на unity файл, то у некоторых открывается нормально. А вот ссыль на html не работает.
Посмотрел на юнити.ру, там размещают юнити файл лежащий на дропбоксе, но насколько я понял у них веб плеер к сайту прикручен.
|
(Offline)
|
|
30.01.2013, 11:52
|
#1206
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Вопросы от новичка
Вот такой скрипт:
public class Zipper : MonoBehaviour { public Box box; public Vector3 groundPoint; void Awake () { box = GetComponent<Box>(); } void Update () { print (box.boxswith); } }
Нужно обратится к скрипту Box и получить из него переменную boxswith
Первый скрипт висит на одном объекте, второй на другом
Проблема в том что оба объекта загружаются по ходу выполнения программы и клонов объектов много. Объекты со скриптом Box это цели, а с другим скриптом пули.
Код который приведен выше даёт NullReferenceException: Object reference not set to an instance of an object
Zipper.Update () (at Assets/Scripts/Zipper.cs:40) на эту строчку print (box.boxswith);
Как вообще реализовать общение скриптов, когда много клонов объектов?
__________________
|
(Offline)
|
|
30.01.2013, 12:08
|
#1207
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Вопросы от новичка
Если пули, через коллизию. Если в общем, по какому либо атрибуту, например по имени. Стрелять физическими пулями решение с огромным количеством проблем.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2013, 12:41
|
#1208
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Вопросы от новичка
Объекты по которым стреляю у меня статичны, я могу найти по позиции.
Но почему код приведённый выше вызывает ошибку.
По идее он должен написать значение boxswith всех клонов.
__________________
|
(Offline)
|
|
30.01.2013, 12:46
|
#1209
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
не должен, т.к. GetComponent получает скрипт с текущего объекта
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2013, 12:54
|
#1210
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Вопросы от новичка
Т.е. по ходу выполнения программы он пробегает по всем объектам, а доступ я получаю к скрипту объекта который был последним?
Как тогда выбрать нужные мне скрипт, ведь объекты отличаются только содержимым переменных в скрипте (жизнь, позиция). Или при создании объекта давать разные имена (ололо1, ололо2 ... и т.д.)
Тогда как выбрать объект по имени? (помогите кодом)
__________________
|
(Offline)
|
|
30.01.2013, 13:06
|
#1211
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Нет, скрипт Zipper принадлежит конкретному объекту, и GetComponent получает скрипты с этого объекта. По имени искать GemeObject.Find(), но может тебе что-то проще подойдет? Опиши задачу более подробно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2013, 13:25
|
#1212
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Вопросы от новичка
Задача такая:
Объект Box на нём скрипт Box - это заранее сделанный префаб, клоны которого расставляются по карте
GameObject inst = (GameObject)Instantiate(Resources.Load("Prefabs/Box", typeof(GameObject)));
Затем игрок стреляет по этим клонам. При выстреле создаётся клон другого префаба
GameObject inst = (GameObject)Instantiate(Resources.Load("Prefabs/Particles/Zipper", typeof(GameObject)));
На объекте Zipper весит скрипт Zipper. При попадании в объект Box у Box отнимается жизнь (если ноль то удаляется) а объект Zipper удаляется.
Объектов Box много и объектов Zipper много.
Как хочу сделать (пока не получается)
Zipper получает позицию Box. По позиции находится тот Box на который нацелен Zipper (объект Box статичен). При попадании у нужного Box отнимается жизнь.
Когда я делал жизнь как static всё работало, только жизнь была одна на все Box...
__________________
|
(Offline)
|
|
30.01.2013, 14:01
|
#1213
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Короче задача в момент выстрела или в момент попадания определить в какой Box попал. Попробуй почитать мой тутор про змейку. Там есть поедание еды через столкновение. Я думаю тебе похожий способ подойдет. Если определить можно в момент выстрела, то здесь поможет Raycast.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2013, 14:03
|
#1214
|
Бывалый
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений (для 880 пользователей)
|
Ответ: Вопросы от новичка
Стрельни лучем, если игрок попал по цели, определяй время через которое пуля должна войти в цель, дальше два направления или через эту дельту времени инстансь пулю в точке, куда ты попал и через коллизию с целью вызывай логику или пускай пулю и с задержкой дельта вызывай на ней логику. Не знаю насколько динамичная у тебя сцена, и нужна ли видимость полета пули.
Up. Pax за тобой не успеешь))
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2013, 14:26
|
#1215
|
Бывалый
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений (для 245 пользователей)
|
Ответ: Вопросы от новичка
рах
попробовал применить
audio.PlayClipAtPoint(clip, new Vector3(5, 1, 2));
выдается ошибка -
Assets/aScripts/sAnimator.cs(269,23): error CS0176: Static member `UnityEngine.AudioSource.PlayClipAtPoint(UnityEngi ne.AudioClip, UnityEngine.Vector3)' cannot be accessed with an instance reference, qualify it with a type name instead
В чем дело?
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:11.
|