Game Maker - создание игр | HellRoom Games

Дополнительно: => Вопросы - Ответы => Тема начата: piligrin от Ноябрь 03, 2012, 11:45:17



Название: Меню паузы на одну клавишу
Отправлено: piligrin от Ноябрь 03, 2012, 11:45:17
Скажите, как правильно написать этот код  на ява-скрипт, чтоб работало:

Или как отключить эти переменные (var mouseSpeed; и var speed;) из скрипта c# ?


Название: Re: Меню паузы на одну клавишу
Отправлено: Born for go от Ноябрь 10, 2012, 16:22:11
1. Вопрос сформулирован ужасно
2. Читаемость кода ужасная
3. Вот Ваш
Код:
var mouseSpeed : float = 4.0;
var speed : float = 0.1;

function Update ()
{
if(Input.GetKeyDown(KeyCode.Escape))
{
mouseSpeed.enabled = !mouseSpeed.enabled ;
speed.enabled = !speed.enabled ;
}
}
// просто уберите "|| Input.GetKeyDown(KeyCode.N)", элементарно
4. Чтобы отключить переменные - сотрите их :facepalm: элементарно же


Название: Re: Меню паузы на одну клавишу
Отправлено: piligrin от Ноябрь 10, 2012, 21:08:49
Born for go, мне искренне жаль, что мой код поверг Вас в ужас  sm:)  Теперь уже понимаю, что вопрос был задан некорректно. Думал, что я неправильно перевёл этот код из шарпа в яву, но проблема была в другом месте и уже устранена.
 Что значит стереть переменные? Не понимаю о чём Вы. Мне нужно из скрипта C#  выключать/включать переменные в ява-скрипте(или выключать/включать весь ява-скрипт), если такое возможно, конечно. Типа этого: GetComponent<класс скрипта>().enabled = false; или: GetComponent<класс скрипта>().переменная = false;(только из си-шарпа в яве). Если можете, дайте код, которым это можно сделать.
(Ещё раз прошу прощения за причинённые неудобства, задаю вопросы со своего уровня познаний unity и скриптинга, которые, увы, невелики.)


Название: Re: Меню паузы на одну клавишу
Отправлено: Born for go от Ноябрь 11, 2012, 12:17:58
Опять же вопрос сформулирован не очень. sm_milo Ну думаю, Вы имели в виду изменение переменной ява скрипта посредством C#?


Название: Re: Меню паузы на одну клавишу
Отправлено: piligrin от Ноябрь 11, 2012, 15:37:04
...думаю, Вы имели в виду изменение переменной ява скрипта посредством C#?
Да, именно так. Но на всякий случай ещё раз расскажу.
Есть ява скрипт с переменной   var speed : float = 5.0; И есть скрипт си шарп с кнопкой:
   if(Input.GetKeyDown(KeyCode.Escape))
   {
      Переменная в ява скрипте speed  = false;
   }


Название: Re: Меню паузы на одну клавишу
Отправлено: Alcatraz от Ноябрь 11, 2012, 15:48:32
зачем 2 скрипта на 2-х языках?

Тогда делай так:


Код:
  if(Input.GetKeyDown(KeyCode.Escape))
   {
      gameObject.SendMessage("SetSpeed",false);
   }

а в ява скрипте пропиши:
Код:

function SetSpeed(b : boolean) {
speed = f;
}

действие кода - скрипт будет посылать своему объекту сигнал. и другим скриптам тоже. Делай так, если оба скрипта на одном объекте, если на разных,
то gameObject. замени на переменную с объектом, т.е так:

Код:
var obj : GameObject;

______
obj.SendMessage(итд).


Название: Re: Меню паузы на одну клавишу
Отправлено: piligrin от Ноябрь 11, 2012, 20:35:24
зачем 2 скрипта на 2-х языках?
Потому,что не получается перевести его из явы в шарп,вот и приходится плясать между ними.

Да, скрипты на разных объектах.Я наверное делаю что-то не так, потому, что в скрипте C# выдаёт ошибку: "obj." - не существует в текущем контексте.
Делаю вот так:
Ява-скрипт "NoclipedCamera.js"
Скрипт C# "Functions.cs"


И ещё, не понял в этой строке что писать вместо " f " :
function SetSpeed(b : boolean) {
speed = f;
}


Название: Re: Меню паузы на одну клавишу
Отправлено: Alcatraz от Ноябрь 11, 2012, 21:23:35
Моя ошибка. вместо f пиши b (переменная из аргумента функции).

obj нужно задать, если в разных объектах.


Название: Re: Меню паузы на одну клавишу
Отправлено: piligrin от Ноябрь 13, 2012, 10:03:44
Спасибо.