Страница 1 из 1

как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 05 июл 2018, 15:51
kirya_355
сделал 2 сцены : меню и игра , так вот когда запускаю игру из меню идет загрузка,и если во время загрузки нажать , то при окончании загрузки это нажатие засчитывается , то есть ты нажимаешь во время загрузки , она заканчивается , и тут твоё касание на новой сцене засчитывается , и ты либо сразу проигрываешь либо получаешь 1 очко .Как сделать , чтобы во время загрузки не воспринимались касания? (если что у меня free версия unity )

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 06 июл 2018, 20:46
kirya_355
kirya_355 писал(а):сделал 2 сцены : меню и игра , так вот когда запускаю игру из меню идет загрузка,и если во время загрузки нажать , то при окончании загрузки это нажатие засчитывается , то есть ты нажимаешь во время загрузки , она заканчивается , и тут твоё касание на новой сцене засчитывается , и ты либо сразу проигрываешь либо получаешь 1 очко .Как сделать , чтобы во время загрузки не воспринимались касания? (если что у меня free версия unity )



кто-нибудь знает? может скрипт на второй сцене повесить чтобы функция OnMouseApAsButton работала только когда загрузиться , или во free версии это недоступно

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 07 июл 2018, 00:07
Anonymyx
Может включать коллайдеры объекта только после полной загрузки сцены?
Или просто сделать проверку через bool.

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 15 июл 2018, 20:20
kirya_355
Anonymyx писал(а):Может включать коллайдеры объекта только после полной загрузки сцены?
Или просто сделать проверку через bool.

как сделать проверку во free версии unity

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 15 июл 2018, 20:35
1max1
При чем тут вообще фри не фри, ты почитай чем отличается платная от бесплатной, чтобы не возникало таких вопросов.
https://docs.unity3d.com/ScriptReferenc ... oaded.html

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 15 июл 2018, 20:36
kirya_355
1max1 писал(а):При чем тут вообще фри не фри, ты почитай чем отличается платная от бесплатной, чтобы не возникало таких вопросов.
https://docs.unity3d.com/ScriptReferenc ... oaded.html



да вот же смотрел видосы , и там говорят так можно только в платной делать , запутали меня .

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 15 июл 2018, 20:43
1max1
доверяй, но проверяй

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 15 июл 2018, 21:26
getAlex
Создай enum с состояниями игры (play, loading, paused, etc) и храни поле с этим енумом в главном игровом скрипте. А в методе, где ты ловишь нажатие мышки и что-то делаешь, сделай проверку что состояние должно быть только play, иначе не return;

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 15 июл 2018, 22:28
kirya_355
getAlex писал(а):Создай enum с состояниями игры (play, loading, paused, etc) и храни поле с этим енумом в главном игровом скрипте. А в методе, где ты ловишь нажатие мышки и что-то делаешь, сделай проверку что состояние должно быть только play, иначе не return;


так ,так ,так, звучит хорошо,а пример можно

Re: как сделать чтобы при загрузки нажатия не воспринимались?

СообщениеДобавлено: 16 июл 2018, 00:28
getAlex
kirya_355 писал(а):
getAlex писал(а):Создай enum с состояниями игры (play, loading, paused, etc) и храни поле с этим енумом в главном игровом скрипте. А в методе, где ты ловишь нажатие мышки и что-то делаешь, сделай проверку что состояние должно быть только play, иначе не return;


так ,так ,так, звучит хорошо,а пример можно



Синтаксис:
Используется csharp
public enum GameState
{
    Play= 0,
    Load,
    Paused
}

public class Game : MonoBehaviour
{

    public static Game me = null;

    private GameState _mystate = GameState.Play;
    public GameState mystate
    {
        get { return _mystate; }
        set { }
    }

    void Awake ()
    {
        me = this;
        DontDestroyOnLoad(this.gameObject);
    }
   
    void SetState(GameState val)
    {
        _mystate = val;
    }
   
    public void StartNextLevel()
    {
          SetState(GameState.Load);
          SceneManager.LoadScene(.......);
    }

     void OnLevelWasLoaded(int level)
      {
            SetState(GameState.Play);
      }
}

public class YourScript : MonoBehaviour
{
    public void OnClick()
    {
         if(Game.me.mystate == GameState.Load)
             return;
         ....
         тут дальше какой-то твой код
    }

}