Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Unity, C#

19.08.22 22:12
Re: Unity, C#
 
uscheswoi_82 коренной житель
в ответ AlexNek 19.08.22 21:37
Не уверен, что Юнити на это способна, она скорее всего не умеет в окне работать или хотя-бы мышу отдать.

У всех нормальных игровых движках хоть в старых, хоть в новых разделяются на методы Init, Paint, Keyboard, KeyPad, Mouse. В методе Init происходит инициализация и подгрузка чего-ниубдь (3D моделей, текстур, аудио, музыка), в методе Paint рисует, метод постоянно вызывается как-будто от таймера, в методах Keyboard, KeyPad, Mouse ловите нажатие кнопок. Чтобы передать в метод Paint какую нажали кнопку, нужно завести глобальную переменную и передавать код кнопки в методах Keyboard, KeyPad, Mouse а в методе Paint считываете код клавиши из глобальной переменной.


Допустим в колледже мы изучали библиотеку FreeGlut простой пример, нужно зарегистрировать Callback-функции:

int main(int argc, char **argv) {
    // init GLUT and create window
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(320,320);
    glutCreateWindow("Lighthouse3D- GLUT Tutorial");
        // register callbacks
    glutDisplayFunc(renderScene);
    glutReshapeFunc(changeSize);
    glutIdleFunc(renderScene);
    // here are the new entries
    glutKeyboardFunc(processNormalKeys);
    glutSpecialFunc(processSpecialKeys);
    // enter GLUT event processing cycle
    glutMainLoop();
    return 1;
}


В Callback-функции glutDisplayFunc обрабатываетсся графика, а в Callback-функции glutKeyboardFunc обрабатывается нажатие клавиши.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Перейти на