Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 06.12.2013, 11:49   #1
Keypa
AnyKey`щик
 
Аватар для Keypa
 
Регистрация: 04.12.2010
Адрес: Санкт-Петербург
Сообщений: 14
Написано 4 полезных сообщений
(для 9 пользователей)
Скрипт "Светофор" (Нужен совет)

Всем привет.
Сразу скажу, unity начал изучать совсем недавно)
Так вот, решил начать с написания скрипта "Светофор".
Я на 100% уверен, что данный скрипт можно написать по другому, но пока не знаю как.
Я не прошу вас разжевывать что да как, я просто прошу подсказать направление))
Ниже скрипт:
var myTimer:float = 10.0;

var sphR = GameObject.Find("Object01");
var sphY = GameObject.Find("Object03");
var sphG = GameObject.Find("Object02");

var tex : Texture = renderer.material.GetTexture ("");
var tex2 : Texture = renderer.material.GetTexture ("");

var textures : Texture[];
var changeInterval : float = 0.33;

function Update()
{

if (myTimer > 0)
        {
        myTimer -= Time.deltaTime;
        sphR.renderer.material.mainTexture = tex2;

        }
        
if (myTimer < 6)
        {
        sphY.renderer.material.mainTexture = tex2;
        }
        
if (myTimer < 5)
        {
        sphG.renderer.material.mainTexture = tex2;
        sphY.renderer.material.mainTexture = tex;
        sphR.renderer.material.mainTexture = tex;
        }
        
if  (myTimer <= 2)
        {
        if(textures.length == 0)
        return;
        var index : int = Time.time / changeInterval;
        index = index % textures.length;
        sphG.renderer.material.mainTexture = textures[index];
        }

if (myTimer <= 0)
        {
        sphG.renderer.material.mainTexture = tex;
        myTimer=myTimer+10;
        }
}

function OnGUI ()
{
        GUI.Label (new Rect(10,50,250,30),"Время: " + myTimer.ToString("f0")); 
}
(Offline)
 
Ответить с цитированием
Старый 06.12.2013, 12:44   #2
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Скрипт "Светофор" (Нужен совет)

Пишу прямо на сайте, могу ошибиться.
Я бы сделал как то так в шарпе. Изучайте корутины, с ними куда проще делать разные таймеры.
using UnityEngine;

public class Svetofor : MonoBehaviour
{
GameObject sphR;
GameObject sphY;
GameObject sphG;

Texture2D tex;
Texture2D tex2;

Texture2D[] textures;

void Start()
{
    sphR = GameObject.Find("Object01");
    sphY = GameObject.Find("Object03");
    sphG = GameObject.Find("Object02");

    tex = renderer.material.GetTexture ("");
    tex2 = renderer.material.GetTexture ("");
    StartCoroutine(Timer());
    sphR.renderer.material.mainTexture = tex2;
}

IEnumerator Timer()
{
    while(true)
    {
        yield return new WaitOfSecond(4);
        sphY.renderer.material.mainTexture = tex2;

        yield return new WaitOfSecond(1);
        sphG.renderer.material.mainTexture = tex2;
        sphY.renderer.material.mainTexture = tex;
        sphR.renderer.material.mainTexture = tex;

        yield return new WaitOfSecond(3);
        if(textures.length != 0)
        {
            var index : int = Time.time / changeInterval;
            index = index % textures.length;
            sphG.renderer.material.mainTexture = textures[index];
        }

        yield return new WaitOfSecond(2);

        sphG.renderer.material.mainTexture = tex;
        sphR.renderer.material.mainTexture = tex2;
    }
}
}
(Offline)
 
Ответить с цитированием
Старый 06.12.2013, 15:32   #3
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Скрипт "Светофор" (Нужен совет)

Могу подтолкнуть: сразу переходи на c#, дабы потом не пришлось переучиваться.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:42.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com