Пятница, 10 Апреля 2020, 06:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Помогите с реализацией.
Помогите с реализацией.
ReSeRДата: Пятница, 30 Марта 2012, 15:43 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Всем привет. Я знаю что не перевелись еще на Руси люди, которые готовы помочь biggrin Данную тему я создал не только для себя , но и для тех кто ищет помощь.

У меня проблемка которую я не могу реализовать:

1. Помогите сделать: Чтобы при начале сцены(левела, раунда) появлялся Таймер , с отсчётом на экране( то есть на экране циферки 3,2,1,go)
После завершения таймера происходит любое действие.


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
sk0rpi0nДата: Пятница, 30 Марта 2012, 16:19 | Сообщение # 2
Tiberium
Сейчас нет на сайте
Quote
Данную тему я создал не только для себя , но и для тех кто ищет помощь.

Эмм... Уже есть такая тема.




Adventures of the Purple Ball - готов.
Wanderer - готов.
ReSeRДата: Пятница, 30 Марта 2012, 16:25 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
sk0rpi0n, в этой теме почему могут либо не ответить либо очень долго ждать))) biggrin т.к там идет вопрос за вопросом

FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
pixeyeДата: Пятница, 30 Марта 2012, 17:05 | Сообщение # 4
Red Winter Software
Сейчас нет на сайте
Quote (ReSeR)
sk0rpi0n, в этой теме почему могут либо не ответить либо очень долго ждать))) т.к там идет вопрос за вопросом


святая простота. От того что ты тут дубль тему поднял быстрее не ответят.

Quote (ReSeR)
1. Помогите сделать: Чтобы при начале сцены(левела, раунда) появлялся Таймер , с отсчётом на экране( то есть на экране циферки 3,2,1,go)
После завершения таймера происходит любое действие.


Как раз делал такую штуку. Щас будет

Добавлено (30.03.2012, 16:49)
---------------------------------------------
Quote (ReSeR)
1. Помогите сделать: Чтобы при начале сцены(левела, раунда) появлялся Таймер , с отсчётом на экране( то есть на экране циферки 3,2,1,go)
После завершения таймера происходит любое действие.


Итак. Для простоты восприятия я не буду использовать здесь объекты. Тайминг выводится в лог. Для таких задач полноценный таймер ненужен.

Code
void Start(){      
StartCoroutine(GameStart());
}

IEnumerator GameStart(){      
print("3");
yield return new WaitForSeconds(0.5f);
print("2");
yield return new WaitForSeconds(0.5f);
print("1");
yield return new WaitForSeconds(0.5f);
print("Go!");
yield return new WaitForSeconds(0.5f);

otherFunc();

}

void otherFunc(){      
}


Как можно улучшить - задавать конечное действие ( вызов функции ) через делегат.

Добавлено (30.03.2012, 16:56)
---------------------------------------------
Как это сделать красиво. Уже второй вопрос. Несколько сложнее.
Я использую 2д библиотеки под юнити и вывожу объект текста, потом вызываю действия под них и они красиво исчезают, уменьшаются и тп и тд.

У меня это выглядит так
Code
GameObject startText = Resources.Load("objects/textPrefab") as GameObject;
tk2dTextMesh text = null;
GameObject o = Instantiate(startText,new Vector3(15,50,0),Quaternion.identity) as GameObject;
o.layer = 13;

text = o.GetComponent<tk2dTextMesh>();
text.text = "3";
text.color = new Color(120/255f,212/255f,1f,1f);
text.scale = new Vector3(20.0f,20.0f,20.0f);
text.Commit();
yield return new WaitForSeconds(0.5f);
StartCoroutine(tween.use.tk2dScaleText(text,20.0f,30.0f,0.5f,true));
yield return StartCoroutine(tween.use.alpha(text,1.0f,0.0f,0.5f,true));
text.text = "2";
StartCoroutine(tween.use.tk2dScaleText(text,20.0f,30.0f,0.5f,true));
yield return StartCoroutine(tween.use.alpha(text,1.0f,0.0f,0.5f,true));
text.text = "1";
StartCoroutine(tween.use.tk2dScaleText(text,20.0f,30.0f,0.5f,true));
yield return StartCoroutine(tween.use.alpha(text,1.0f,0.0f,0.5f,true));
text.text = ":-)";
StartCoroutine(tween.use.tk2dScaleText(text,20.0f,30.0f,0.5f,true));
yield return StartCoroutine(tween.use.alphaDestroy(text,1.0f,0.0f,0.5f,true));
StartCoroutine(waves[0].StartWave());


Добавлено (30.03.2012, 17:00)
---------------------------------------------
Для таких вещей у меня есть абстрктный скрипт твин, который кочует из проекта в проект и постоянно расширяется, в него я закладываю всевозможные движения вращения, исчезания, появления и прочую лабудень.

Например последней функцией текст становиться прозрачным и уничтожается за ненадобностью.

Code
     public  IEnumerator alphaDestroy(tk2dTextMesh objSpr,float start,float end,float timer, bool on){
    GameObject obj = objSpr.gameObject;
    
  float t = 0.0f;
  while(t<1.0f){
  t+=Time.deltaTime*(1.0f/timer);
  objSpr.color = new Color (objSpr.color.r, objSpr.color.g, objSpr.color.b,Mathf.Lerp( start,end,1.0f-Mathf.Cos(t*Mathf.PI*.5f)));
  objSpr.Commit();
  yield return true;
  }
  if (on) {
   Destroy(obj);
   }
   
   
  }
       
    }


Добавлено (30.03.2012, 17:05)
---------------------------------------------
ПОмогло ли тебе это ? Вряд ли.

Почему? Потому что это очень просто сделать самому ( Сам механизм ), но сделать так чтобы он работал красиво, уже строго индвидуально каждый делает по своему.

Действия же по полочкам.
Через сопрограмму делаешь паузы между твоими действиями. вызываешь текст, делаешь действия которые нужны с ним, вызываешь вторую порцию текста. Как правило это один и тот же объект просто меняется текстовое значение.
И так три раза.

В конце уничтожаешь объект.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Пятница, 30 Марта 2012, 17:07
ReSeRДата: Пятница, 30 Марта 2012, 17:13 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
pixeye, Спасибо за такой развёрнутый ответ biggrin Но да я новичок в Unity и я думал что создание, вроде бы лёгкого таймера, замёт более меньший и понятный код)

FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
pixeyeДата: Пятница, 30 Марта 2012, 17:22 | Сообщение # 6
Red Winter Software
Сейчас нет на сайте
Quote (ReSeR)
pixeye, Спасибо за такой развёрнутый ответ Но да я новичок в Unity и я думал что создание, вроде бы лёгкого таймера, замёт более меньший и понятный код)


float t = 0.0f;
while(t<1.0f){
t+=Time.deltaTime*(1.0f/timer);
}

где таймер - твое назначенное время в секундах.

Вот тебе таймер. Он нужен для прикладных задач при твоей основной. Например. Твой текст исчезает за 2 секунды.

Добавлено (30.03.2012, 17:22)
---------------------------------------------
Quote (ReSeR)
и я думал что создание, вроде бы лёгкого таймера, замёт более меньший и понятный код)


Code
string[] myTexts = new myTexts[4];
myTexts[0]  = "3";
myTexts[1]  = "2";
myTexts[2]  = "1";
myTexts[3]  = "GO";
for(int i=0;i<4;i++){   
print(myTexts[i]);
yield return new WaitForSeconds(0.5f);
}


А можно так...но вновь) это простой и абстрактный пример) врядли в жизни ты будешь делать так;)


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю



Сообщение отредактировал pixeye - Пятница, 30 Марта 2012, 17:24
ReSeRДата: Пятница, 30 Марта 2012, 17:31 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
pixeye,

Подскажите,а что даёт эта строчка
Code
yield return new WaitForSeconds(0.5f);


Просто я пишу скрипты на JS а это что то из C#...
Я переделал ваш скрипт под JS но в консоли эти 3 секунды пролистают за 1с. Дело в этой строчке? если да то как её переделать под JS?


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
MyACTДата: Пятница, 30 Марта 2012, 17:36 | Сообщение # 8
C# CODERS
Сейчас нет на сайте
ReSeR, лучше учи C#,он и проще и пока ты новичок не поздно начать учить шарп smile

ПОЖИЗНЕННО ЖИВ
http://youtube.com/myactybatya | twitch.tv/myacty
pixeyeДата: Пятница, 30 Марта 2012, 17:39 | Сообщение # 9
Red Winter Software
Сейчас нет на сайте
Quote (ReSeR)
yield return new WaitForSeconds(0.5f);


Говорит о задержке в пол секунды.

в JS если не изменяет память это будет

Code
yield WaitForSeconds (0.5);

Добавлено (30.03.2012, 17:39)
---------------------------------------------
Не буду утверждать что C# проще, однако до него и с US работал. Могу лишь сказать, что при прочих равных С# более гибок и лаконичен. По производительности для юнити - одна хрень.
Если мозг еще губка лучше привыкать к C# так как скорее всего всеравно на него придется переходить.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

ReSeRДата: Пятница, 30 Марта 2012, 17:49 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
MyACT, А мне почему-то кажется js более легче?
pixeye, спасибо огромное) пока возму последний скрипт за основу biggrin . И еще вопрос не по теме я вижу у вас в подписи игрушки 2D . С помощью какого инструмента(библиотеки) вы сделали 2D если не секрет?.

Добавлено (30.03.2012, 17:49)
---------------------------------------------
pixeye, кстати даже очень не плохо получился таймер(хотя по вашим словам он не пригоден)
Теперь нужно как то вывести на экран надписи) biggrin


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
pixeyeДата: Пятница, 30 Марта 2012, 17:52 | Сообщение # 11
Red Winter Software
Сейчас нет на сайте
Quote (ReSeR)
MyACT, А мне почему-то кажется js более легче?

Только кажется;-) Он действительно кажется в некоторых вещах более очевидным.

Quote (ReSeR)
pixeye, спасибо огромное) пока возму последний скрипт за основу . И еще вопрос не по теме я вижу у вас в подписи игрушки 2D . С помощью какого инструмента(библиотеки) вы сделали 2D если не секрет?.

2dToolKit - стоит 65$

Клик - пошаговый мануал как делать 2д игры бесплатно.

2д так же впринципе можно добиться своими мозгами, все объекты это прозрачные тонкие плашки на которые натянуты текстуры. Так же неплохо написать атлас текстур, так как надо стараться использовать один/несколько материалов.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

reyzorДата: Пятница, 30 Марта 2012, 18:36 | Сообщение # 12
Проггер в законе
Сейчас нет на сайте
ReSeR, Ещё из 2D тулкитов есть RagePixel и Othello 2D Framework(вроде так) - они оба бесплатные.

Юзаю Unity3d +C#
Мой твиттер
Помог - ставь +, Ответил на вопрос - ставь +.
RacotДата: Пятница, 30 Марта 2012, 18:55 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
Quote (pixeye)
пошаговый мануал как делать 2д игры бесплатно


Вот и вот (курс создания марио на Юньке в 2D)


Специалист "во всем" - специалист "ни в чем"
------------------------------------
Script Reference для Unity3D
Помогу со скриптами for Unity3D
ReSeRДата: Пятница, 30 Марта 2012, 20:37 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Люди еще вопросик....
Помогите сделать: При отклонение Угла поворота , он опять выравнивался на назначенный угол.
То есть если Нам надо 90 градусов в главный герой у нас 80 градусов . Нужно вернуть его опять на 90 градусов


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
reyzorДата: Пятница, 30 Марта 2012, 21:04 | Сообщение # 15
Проггер в законе
Сейчас нет на сайте
Quote (ReSeR)
То есть если Нам надо 90 градусов в главный герой у нас 80 градусов . Нужно вернуть его опять на 90 градусов

В updete прописать
Code
rotate(90);
А уж синтаксис этой команды зависит от тулкита.


Юзаю Unity3d +C#
Мой твиттер
Помог - ставь +, Ответил на вопрос - ставь +.
pixeyeДата: Пятница, 30 Марта 2012, 22:13 | Сообщение # 16
Red Winter Software
Сейчас нет на сайте
Quote (reyzor)
В updete прописать
Code
rotate(90);
А уж синтаксис этой команды зависит от тулкита.


Будь добр, не давай дурацких советов если не знаешь.

А то на любой вопрос как сделать игру будем отвечать " makeGame(Beautiful,Interesting,PROFIT);"

Code
    Quaternion target = Quaternion.Euler(0, 0, 90);
         transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * 5.0f);


Пробуй.


ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

ReSeRДата: Суббота, 31 Марта 2012, 01:09 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
pixeye, работает безупречно) Спасибо

Добавлено (31.03.2012, 01:09)
---------------------------------------------
Снова я biggrin Подскажите проблемка: Сделал текст на экране, установил размер) В Юнке размер окей какой я поставил, Но вот компилю под андроид и весь текст одного маленького размера... Как устранить кто знает?


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
MyACTДата: Суббота, 31 Марта 2012, 05:58 | Сообщение # 18
C# CODERS
Сейчас нет на сайте
ReSeR, уменьшить текст,и лучше сделай разрешение под андроид

Добавлено (31.03.2012, 05:58)
---------------------------------------------
Я имею в виду сам GUI


ПОЖИЗНЕННО ЖИВ
http://youtube.com/myactybatya | twitch.tv/myacty
ReSeRДата: Суббота, 31 Марта 2012, 13:35 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
Вот смотрите Что у меня в Unity3D


А вот что у меня на Android.Тест становится маленьким и одинакового шрифта.


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
pixeyeДата: Суббота, 31 Марта 2012, 14:41 | Сообщение # 20
Red Winter Software
Сейчас нет на сайте
Понятно, пошагово выложи что ты делал. Я так понимаю ты чреез ГУИ систему юнити выводишь текст. Я с ней не работал, но если подробно все распишешь то постараюсь вникнуть что там произошло)

ACTORS - мой фреймворк на Unity
Until We Die - игра над которой работаю

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Помогите с реализацией.
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2020 Рейтинг