Unity 3d - Помощь в написании скриптов. - Страница 65 - Форум Игроделов
Пн, 10 Фев 2025, 11:16 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Unity 3d - Помощь в написании скриптов.
игнатДата: Сб, 12 Окт 2013, 13:37 | Сообщение # 1281
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Немного не то - это я и так знаю. Вопрос в том, как указать это изображение.


Правила форума · участник GCC
 
СообщениеНемного не то - это я и так знаю. Вопрос в том, как указать это изображение.

Автор - игнат
Дата добавления - 12 Окт 2013 в 13:37
seamanДата: Сб, 12 Окт 2013, 14:48 | Сообщение # 1282
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
imageBackground
Дошло в чем проблема. Сорри.
imageBackground = AssetDatabase.LoadAssetAtPath(pathToImages + "background.png", typeof(Texture)) as Texture;
 
СообщениеimageBackground
Дошло в чем проблема. Сорри.
imageBackground = AssetDatabase.LoadAssetAtPath(pathToImages + "background.png", typeof(Texture)) as Texture;

Автор - seaman
Дата добавления - 12 Окт 2013 в 14:48
игнатДата: Пн, 14 Окт 2013, 17:18 | Сообщение # 1283
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Возможно, и если да, то как можно контролировать частоту вызывания функции?


Правила форума · участник GCC
 
СообщениеВозможно, и если да, то как можно контролировать частоту вызывания функции?

Автор - игнат
Дата добавления - 14 Окт 2013 в 17:18
seamanДата: Пн, 14 Окт 2013, 22:25 | Сообщение # 1284
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Корутины же!
 
СообщениеКорутины же!

Автор - seaman
Дата добавления - 14 Окт 2013 в 22:25
игнатДата: Пн, 14 Окт 2013, 22:50 | Сообщение # 1285
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
А по-подробней?


Правила форума · участник GCC
 
СообщениеА по-подробней?

Автор - игнат
Дата добавления - 14 Окт 2013 в 22:50
seamanДата: Пн, 14 Окт 2013, 23:05 | Сообщение # 1286
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Код
IEnumerator Method()
{
      while(true)
     {
        Делаем что надо
        yield return new WaitForSecond(период "вызова" метода);
     }
}

Делаешь период "вызова" метода - переменной и меняешь сколько угодно.
Ну и упрощение работы:
Код
public void StartMethod() { StartCoroutine(Method); }
public void StopMethod() { StopCoroutine("Method"); }
 
Сообщение
Код
IEnumerator Method()
{
      while(true)
     {
        Делаем что надо
        yield return new WaitForSecond(период "вызова" метода);
     }
}

Делаешь период "вызова" метода - переменной и меняешь сколько угодно.
Ну и упрощение работы:
Код
public void StartMethod() { StartCoroutine(Method); }
public void StopMethod() { StopCoroutine("Method"); }

Автор - seaman
Дата добавления - 14 Окт 2013 в 23:05
seamanДата: Пн, 14 Окт 2013, 23:27 | Сообщение # 1287
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Можно даже написать такой класс:
Код
using System;
using System.Collections;
using UnityEngine;

public class Timer : MonoBehaviour
{
     private Action __act;
     private bool __enable;
     private float __period;

     private IEnumerator Method()
     {
         while (__enable)
         {
             __act();
             yield return new WaitForSeconds(__period);
         }
     }

     public void StartTimer(float period, Action act)
     {
         __period = period;
         __act = act;
         __enable = true;
         StartCoroutine(Method());
     }
     public void StopTimer() { __enable = false; }
     public float Period { get { return __period; } set { __period = value; } }
}

Бросаешь на пустышку. В нужном месте находишь. Запускаешь вызовом StartTimer, которому передаешь нужный период вызова и функцию, которую нужно вызывать. В данном случае функция должна быть типа:
void Foo(){...}
Если нужно в нее предавать параметры - нужно Action менять на Action<>...
 
СообщениеМожно даже написать такой класс:
Код
using System;
using System.Collections;
using UnityEngine;

public class Timer : MonoBehaviour
{
     private Action __act;
     private bool __enable;
     private float __period;

     private IEnumerator Method()
     {
         while (__enable)
         {
             __act();
             yield return new WaitForSeconds(__period);
         }
     }

     public void StartTimer(float period, Action act)
     {
         __period = period;
         __act = act;
         __enable = true;
         StartCoroutine(Method());
     }
     public void StopTimer() { __enable = false; }
     public float Period { get { return __period; } set { __period = value; } }
}

Бросаешь на пустышку. В нужном месте находишь. Запускаешь вызовом StartTimer, которому передаешь нужный период вызова и функцию, которую нужно вызывать. В данном случае функция должна быть типа:
void Foo(){...}
Если нужно в нее предавать параметры - нужно Action менять на Action<>...

Автор - seaman
Дата добавления - 14 Окт 2013 в 23:27
HunjethДата: Вт, 15 Окт 2013, 00:11 | Сообщение # 1288
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
Цитата
Возможно, и если да, то как можно контролировать частоту вызывания функции?

вот мне тоже интересно, заметил что в metro2033 чем дальше игрок от объекта тем больше время до след апдейта


Сообщение отредактировал Hunjeth - Вт, 15 Окт 2013, 03:01
 
Сообщение
Цитата
Возможно, и если да, то как можно контролировать частоту вызывания функции?

вот мне тоже интересно, заметил что в metro2033 чем дальше игрок от объекта тем больше время до след апдейта

Автор - Hunjeth
Дата добавления - 15 Окт 2013 в 00:11
Tenb2012Дата: Чт, 07 Ноя 2013, 21:31 | Сообщение # 1289
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Ребята может кто подскажет как отлавливать устройство на iOS, вот вариант отлавливать разрешение, но тут дилемма iPad 3 - iPad 4 и Air имеют одно и тоже разрешение. А вот производительность у них разная.

Код
rez=Screen.currentResolution.width + "x" + Screen.currentResolution.height;
   
if(rez=="1600x1200"){
Screen.SetResolution(1280, 800, true, 30);
 
СообщениеРебята может кто подскажет как отлавливать устройство на iOS, вот вариант отлавливать разрешение, но тут дилемма iPad 3 - iPad 4 и Air имеют одно и тоже разрешение. А вот производительность у них разная.

Код
rez=Screen.currentResolution.width + "x" + Screen.currentResolution.height;
   
if(rez=="1600x1200"){
Screen.SetResolution(1280, 800, true, 30);

Автор - Tenb2012
Дата добавления - 07 Ноя 2013 в 21:31
игнатДата: Чт, 07 Ноя 2013, 22:20 | Сообщение # 1290
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Посмотреть другие характеристики? C# может всё.


Правила форума · участник GCC
 
СообщениеПосмотреть другие характеристики? C# может всё.

Автор - игнат
Дата добавления - 07 Ноя 2013 в 22:20
Tenb2012Дата: Чт, 07 Ноя 2013, 22:48 | Сообщение # 1291
Нет аватара
 
Сообщений: 6
Награды: 0
Репутация: 0
Статус: Offline
Цитата игнат ()
Посмотреть другие характеристики? C# может всё.


Может сылочку подкините? Где смотреть, буду благодарен.
 
Сообщение
Цитата игнат ()
Посмотреть другие характеристики? C# может всё.


Может сылочку подкините? Где смотреть, буду благодарен.

Автор - Tenb2012
Дата добавления - 07 Ноя 2013 в 22:48
игнатДата: Чт, 07 Ноя 2013, 23:02 | Сообщение # 1292
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Код
SystemInfo.operatingSystem;
SystemInfo.graphicsDeviceName;
SystemInfo.graphicsDeviceVersion;

Ссылка - тык.



Правила форума · участник GCC
 
Сообщение
Код
SystemInfo.operatingSystem;
SystemInfo.graphicsDeviceName;
SystemInfo.graphicsDeviceVersion;

Ссылка - тык.

Автор - игнат
Дата добавления - 07 Ноя 2013 в 23:02
commandobyДата: Сб, 16 Ноя 2013, 17:21 | Сообщение # 1293
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Я открываю файл, который находится в папке с игрой так:
Код
var readSave = new File.OpenText("save.dob");

Как открыть файл, находящийся не в папке с игрой, а снаружи её (рядом с ней) ?


Блог.
 
СообщениеЯ открываю файл, который находится в папке с игрой так:
Код
var readSave = new File.OpenText("save.dob");

Как открыть файл, находящийся не в папке с игрой, а снаружи её (рядом с ней) ?

Автор - commandoby
Дата добавления - 16 Ноя 2013 в 17:21
ЛевшаДата: Сб, 16 Ноя 2013, 19:38 | Сообщение # 1294
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Методом WWW

X.cor.R (Prologue)
 
СообщениеМетодом WWW

Автор - Левша
Дата добавления - 16 Ноя 2013 в 19:38
commandobyДата: Вс, 17 Ноя 2013, 11:57 | Сообщение # 1295
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Цитата Левша ()
Методом WWW

Я раньше думал, что этот метод для чтения из интернета. Сейчас погуглю.


Блог.
 
Сообщение
Цитата Левша ()
Методом WWW

Я раньше думал, что этот метод для чтения из интернета. Сейчас погуглю.

Автор - commandoby
Дата добавления - 17 Ноя 2013 в 11:57
ЛевшаДата: Вс, 17 Ноя 2013, 14:35 | Сообщение # 1296
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата commandoby ()
для чтения из интернета.

Не только, он и с дисков тоже умеет читать.


X.cor.R (Prologue)
 
Сообщение
Цитата commandoby ()
для чтения из интернета.

Не только, он и с дисков тоже умеет читать.

Автор - Левша
Дата добавления - 17 Ноя 2013 в 14:35
игнатДата: Вт, 19 Ноя 2013, 18:34 | Сообщение # 1297
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Вопрос, касаясь этой темы: есть метод Application.LoadLevelAsync, у него есть переменная isDone, но вот как можно не автоматически загружать сцену после окончания метода? Надо сделать так, чтобы сцена загрузилась, но не включалась.


Правила форума · участник GCC
 
СообщениеВопрос, касаясь этой темы: есть метод Application.LoadLevelAsync, у него есть переменная isDone, но вот как можно не автоматически загружать сцену после окончания метода? Надо сделать так, чтобы сцена загрузилась, но не включалась.

Автор - игнат
Дата добавления - 19 Ноя 2013 в 18:34
commandobyДата: Вт, 26 Ноя 2013, 19:00 | Сообщение # 1298
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Как найти наименьшее значение массива в JavaScript? Mathf.Min подходит только для C#.

Добавлено (26 Ноя 2013, 19:00)
---------------------------------------------
В принципе можно сделать это при помощи цикла (перебрать весь массив), но на циклы юня странно реагирует, поэтому ищу другие способы.


Блог.
 
СообщениеКак найти наименьшее значение массива в JavaScript? Mathf.Min подходит только для C#.

Добавлено (26 Ноя 2013, 19:00)
---------------------------------------------
В принципе можно сделать это при помощи цикла (перебрать весь массив), но на циклы юня странно реагирует, поэтому ищу другие способы.


Автор - commandoby
Дата добавления - 26 Ноя 2013 в 19:00
seamanДата: Вт, 26 Ноя 2013, 20:16 | Сообщение # 1299
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
на циклы юня странно реагирует

Нормально она реагирует. Никаких проблем.
Как Вы думаете сделан Mathf.Min?
Код
        public static float Min(params float[] values)
         {
             int length = values.Length;
             if (length == 0)
             {
                 return 0f;
             }
             float num2 = values[0];
             for (int i = 1; i < length; i++)
             {
                 if (values[i] < num2)
                 {
                     num2 = values[i];
                 }
             }
             return num2;
         }

Цикл видите? И никаких проблем.
Цитата
Mathf.Min подходит только для C#.

Я конечно JS не знаю. Однако не вижу ничего, что помешало бы работать ему и в JS.
 
Сообщение
Цитата
на циклы юня странно реагирует

Нормально она реагирует. Никаких проблем.
Как Вы думаете сделан Mathf.Min?
Код
        public static float Min(params float[] values)
         {
             int length = values.Length;
             if (length == 0)
             {
                 return 0f;
             }
             float num2 = values[0];
             for (int i = 1; i < length; i++)
             {
                 if (values[i] < num2)
                 {
                     num2 = values[i];
                 }
             }
             return num2;
         }

Цикл видите? И никаких проблем.
Цитата
Mathf.Min подходит только для C#.

Я конечно JS не знаю. Однако не вижу ничего, что помешало бы работать ему и в JS.

Автор - seaman
Дата добавления - 26 Ноя 2013 в 20:16
commandobyДата: Ср, 27 Ноя 2013, 17:42 | Сообщение # 1300
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Вот кусок кода, заполняющий массив:
Код
distanceDown.clear();
for(var xDown = 0; xDown < 5; xDown++) {
for(var yDown = 0; yDown < 5; yDown++) {
var hitDown : RaycastHit;
Physics.Raycast (transform.position+Vector3(pos[xDown],0.29,pos[yDown]), Vector3.down, hitDown, 10.0);
distanceDown[distanceDown.length] = Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point);
}}

Вот цикл, которым я перебирал массив:
Код
for(var zDown = 0; zDown < 25; zDown++) {
if (distanceDown[zDown]<0.598&&distanceDown[zDown]<xDURL) { xDURL = distanceDown[zDown]; }
}
if (xDURL<0.598) { positionDULR[positionDULR.lenght] = xDURL; positionDULRVector3[positionDULR.lenght] = Vector3(0,1,0); }
Если я его запускаю, то перестаёт работать правильно предыдущий цикл (пишет, что равно 0 или вообще нет...).

А на Mathf.Min юнити тоже выдаёт ошибку, только не помню какую.


Блог.
 
СообщениеВот кусок кода, заполняющий массив:
Код
distanceDown.clear();
for(var xDown = 0; xDown < 5; xDown++) {
for(var yDown = 0; yDown < 5; yDown++) {
var hitDown : RaycastHit;
Physics.Raycast (transform.position+Vector3(pos[xDown],0.29,pos[yDown]), Vector3.down, hitDown, 10.0);
distanceDown[distanceDown.length] = Vector3.Distance(transform.position+Vector3(pos[xDown],0.29,pos[yDown]), hitDown.point);
}}

Вот цикл, которым я перебирал массив:
Код
for(var zDown = 0; zDown < 25; zDown++) {
if (distanceDown[zDown]<0.598&&distanceDown[zDown]<xDURL) { xDURL = distanceDown[zDown]; }
}
if (xDURL<0.598) { positionDULR[positionDULR.lenght] = xDURL; positionDULRVector3[positionDULR.lenght] = Vector3(0,1,0); }
Если я его запускаю, то перестаёт работать правильно предыдущий цикл (пишет, что равно 0 или вообще нет...).

А на Mathf.Min юнити тоже выдаёт ошибку, только не помню какую.

Автор - commandoby
Дата добавления - 27 Ноя 2013 в 17:42
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025