Давайте поговорим об этом:
class test
{
function __construct()
{
}
private function test1()
{
echo "In test1";
}
private function test2()
{
echo "test2";
}
private function test3()
{
echo "test3";
}
function CallMethodsAfterOne($methods = array())
{
//Calls the private method internally
foreach($methods as $method => $arguments)
{
$this->test1();
$arguments = $arguments ? $arguments : array(); //Check
call_user_func_array(array($this,$method),$arguments);
}
}
}
$test = new test;
$test->CallMethodsAfterOne('test2','test3','test4' => array('first_param'));
То, что я сделал бы
Обновление. Это не ошибка. Я просто что-то пропустил в своем проекте. У меня есть скрипт для управления скоростью камеры, управляемой мышью, и переменная PlayerPrefs для ее изменения. И в некоторых случаях эта переменная была установлена на 0. Но для моего случая она уже была установлена на реестр, и на моем ПК все работало нормально. Может быть, мне нужно удалить этот вопрос, потому что он не предоставил достаточно данных.
Я нашел эту ветку на форуме Unity Некоторые люди сталкивались с такой же проблемой на реальном ПК с Windows с разными версиями Unity и разными драйверами мыши. Это старая ошибка совместимости оборудования Unity. Похоже, что это не может быть исправлено иначе, чем обновление Unity или использование другой системы ввода.
Я сам сталкивался с этой проблемой при использовании сеанса RDP или некоторого вида удаленного средства просмотра, такого как TeamViewer. Мышь X и Мышь Y считывают вывод непосредственно с устройства. Если устройство не подключено напрямую к машине, на которой запущен плеер, то входные данные не будут правильно извлечены. Я не уверен, так ли это для вас, но я могу думать, что это единственный случай, когда их не поймали.
Может быть, вам стоит добавить немного кода, который определяет положение мыши в каждом кадре и выводит разницу, это в любом случае обойдёт входы Mouse X / Y.