Zeke0028: переводы
C# Game Programming Cookbook for Unity 3D / Программирование игр на Unity 3D C#. Книга готовых решений.
→The singleton instance of our script may be accessed anywhere, by any script, simply with the following syntax:
0 Статическому экземпляру нашего скрипта можно получить доступ в любом месте, на любого скрипта, просто со следующим синтаксисом:
→The method shown here was demonstrated on the Unity public wiki*by a user named Emil Johansen (AngryAnt). It uses a private static variable in conjunction with a public static function. Other scripts access the public function to gain access to the private static instance of this script, which is returned via the public function so that only one instance of the object will ever exist in a scene regardless of how many components it is attached to and regardless of how many times it is instantiated.
A simple singleton structure:
A simple singleton structure:
0 Такой способ, был продемонстрирован в обшей Вики по Unity пользователя Эмиль Йохансен (AngryAnt). Он использует частную статическую переменную в сочетании с публичной статической функцией. Другие скрипты имеют доступ к публичной функции для получения доступа к частной статической переменой экземпляр этого скрипта, который возвращается через публичную функцию, так что бы только один экземпляр класса когда либо существовал в сцене, независимо от того, сколькими компонентами его связали и сколько раз его создавали.
Структура простого Singleton :
Структура простого Singleton :
→It is not too difficult to see how useful static variables can be in communication between different script objects. In the public static example cited earlier, the idea was that we had a game controller object that needed to be accessed from one or more other scripts in our game.
0 Не слишком трудно понять, как полезные статические переменные могут быть в коммуникации между различными скриптами. В примере публичной статической переменой, приведенному выше, идея в том, что у нас есть объект контроллера игры, который должен быть доступен из одного или нескольких других скриптов нашей игры.
→A singletonis a commonly used design pattern that allows for only one instance of a particular class to be instantiated at a time. This pattern is ideal for our game scripts that may need to communicate (or be communicated with) across the entire game code. Note that we will be providing a static reference to the script, exactly as we did in the “Static Variables” method earlier in this section, but in implementing a singleton class, we will be adding some extra code to make sure that only one instance of our script is ever created.
0 Singletonis стандартный шаблон проектирования, который позволяет создавать только один объект определенного класса. Эта модель идеально подходит для игровых скриптов, которым, придется общаться по всему коду игры. Обратите внимание, что мы будем предоставлять статический ссылку на скрипт, точно так же, как мы делали в методе "Статические переменные» ранее в этом разделе, но в реализации класса Singletonis, мы будем добавлять дополнительный код, чтобы убедиться, что только один экземпляр нашего скрипта мог быть создан.
→4. The singleton design pattern.
In the previous part of this section, we looked at using a static variable to share a manager script across the entire game code. The biggest danger with this method is that it is possible to create multiple instances of the same script. If this happens, you may find that your player code is talking to the wrong instance of the game controller.
In the previous part of this section, we looked at using a static variable to share a manager script across the entire game code. The biggest danger with this method is that it is possible to create multiple instances of the same script. If this happens, you may find that your player code is talking to the wrong instance of the game controller.
0 4 Дизайн шаблон Singleton
В предыдущей части этого раздела, мы рассмотрели использование статической переменной предоставляющей доступ к скрипту менеджеру игры. Самая большая опасность этого метода является то, что можно создать несколько экземпляров одного и того же скрипта. Если это произойдет, вы можете обнаруживать, что ваш скрипт игрока сообщает не тому экземпляру менеджера игры.
В предыдущей части этого раздела, мы рассмотрели использование статической переменной предоставляющей доступ к скрипту менеджеру игры. Самая большая опасность этого метода является то, что можно создать несколько экземпляров одного и того же скрипта. Если это произойдет, вы можете обнаруживать, что ваш скрипт игрока сообщает не тому экземпляру менеджера игры.
→The playerManager object only needs to be set up once, by a single instance of the player class, to be ready to use for all the other instances of the same class. All player.cs scripts will be able to access the same instance of the PlayerManager.
0 Объект PlayerManager должен быть создан только один раз, для всех экземпляров класса игрока, чтобы быть его можно было использовать для объектов этого класса. Все player.cs скрипты смогут иметь доступ к этому экземпляру PlayerManager.
→As a working example, try to imagine that a script named player.cs directly controls player objects in your game. They all need to tell a player manager script when something happens, so we declare the player manager as a static variable in our player.cs script like this:
0 В качестве рабочего примера, попробуйте представить себе, что скрипт с название player.cs непосредственно управляет объектами игроков в вашей игре. Все они должны сообщать скрипту менеджеру игроков, когда что-то случится, так мы объявляем менеджера игроков как статическою переменной в нашей скрипте player.cs, как то так:
→Private static
A private static variable exists within the class it was declared and in any other instances of the same class. Other classes/types of script will not be able to access it.
A private static variable exists within the class it was declared and in any other instances of the same class. Other classes/types of script will not be able to access it.
0 Частная статическая переменная
Частная статическая переменная видима в классе и в любых других объектах того же класса. Другие классы / скрипты не смогут получить доступа к ней.
Частная статическая переменная видима в классе и в любых других объектах того же класса. Другие классы / скрипты не смогут получить доступа к ней.
→3. In any other class, we can now access the game controller by referring to its type followed by that static variable (GameController.gateway) such as
0 3 Из любова другова класса, мы можем теперь получить доступ в игровой контроллер, ссылаясь на его типа а потом на статическую переменную (GameController.gateway), вот так
→2. When the game controller (gamecontroller.cs) runs its Start() function, it stores a reference to itself in a public static variable like this:
0 2 Когда игровой контроллер (gamecontroller.cs) запускает функцию Start (), она сохраняет ссылку на себя в публичной статической переменной, как это:
→1. In our gamecontroller.cs game controller script, we set up a public static:
0 1 В нашем скрипте gamecontroller.cs контролирующему игру, мы создали открытую статическую переменую:
→Public static
A public static variable exists everywhere in the system and may be accessed from other classes and other types of script.
Imagine a situation where a player control script needs to tell the game controller script whenever a player picks up a banana. We could deal with it like this:
A public static variable exists everywhere in the system and may be accessed from other classes and other types of script.
Imagine a situation where a player control script needs to tell the game controller script whenever a player picks up a banana. We could deal with it like this:
0 Публичная статическая переменная
Публичная статическая переменная видная везде в системе и может быть доступной из других классов и других типов скриптов.
Представьте себе ситуацию, когда скрипт контролирующий игрока должен сообщить скрипту контролирующий игру, что игрок поднимает банан. Мы могли бы сделать это так:
Публичная статическая переменная видная везде в системе и может быть доступной из других классов и других типов скриптов.
Представьте себе ситуацию, когда скрипт контролирующий игрока должен сообщить скрипту контролирующий игру, что игрок поднимает банан. Мы могли бы сделать это так:
→Although static variables extend across the entire program, you can have private and public static variables. Things get a little tricky when you try to understand the differences between public and private static types—I was glad to have friends on Twitter that could explain it all to me, so let me pass on what I was told:
0 Хотя статические переменные видны во всей программе, вы можете их делать частные и публичные. Все становится немного сложнее, когда вы пытаетесь понять разницу между частной и публичной статической переменой. Мне повезло иметь друзей в Twitter, которые смогли объяснить все это для меня, так что позвольте мне передать, что мне сказали:
→3. Static variables.
The static variable type is useful in that it extends across the entire system; it will be accessible in every other script. This is a particularly useful behavior for a game control script, where several different scripts may want to communicate with it to do things such as add to the player’s score, lose a life, or perhaps change a level.
An example declaration of a static variable might be:
The static variable type is useful in that it extends across the entire system; it will be accessible in every other script. This is a particularly useful behavior for a game control script, where several different scripts may want to communicate with it to do things such as add to the player’s score, lose a life, or perhaps change a level.
An example declaration of a static variable might be:
0 3. Статические переменные.
Статическая переменная полезна для связи, поскольку оно распространяется по всей системе; она будет доступна в любом другом скрипте. Это особенно полезно для скриптов управления игрой, где несколько различных скриптов общаются с остальными решая такие вещи, как добавить к счету игрока, потеряете жизни, или, возможно, изменить уровень.
Пример декларация статической переменной
Статическая переменная полезна для связи, поскольку оно распространяется по всей системе; она будет доступна в любом другом скрипте. Это особенно полезно для скриптов управления игрой, где несколько различных скриптов общаются с остальными решая такие вещи, как добавить к счету игрока, потеряете жизни, или, возможно, изменить уровень.
Пример декларация статической переменной
→SendMessage may also take several parameters, such as setting whether or not the engine should throw an error when there is no receiver, that is, no function in any script attached to the gameObject with a name matching the one in the SendMessage
call. (SendMessageOptions). You can also pass one parameter into the chosen function just as if you were passing it via a regular function call such as
call. (SendMessageOptions). You can also pass one parameter into the chosen function just as if you were passing it via a regular function call such as
0 SendMessage может также принимать несколько параметров, так бы из передача не вызывала ошибки, того что нет приемника, то есть, нет функции в скрипте, прикрепленному к GameObject с именем, совпадающим с в вызовом SendMessage. (SendMessageOptions). Вы также можете передать один параметр в выбранной функции так же, как если вы просто обычно вызывали функцию, на пример
→2. GameObject referencing using SendMessage.
SendMessage is a great way to send a message to a gameObject and call a function in one of its attached scripts or components when we do not need any kind of return result. For example,
SendMessage is a great way to send a message to a gameObject and call a function in one of its attached scripts or components when we do not need any kind of return result. For example,
0 2 Сообщение GameObject с помощью SendMessage.
SendMessage это отличный способ, чтобы отправить сообщение на другой игровой объект и вызвать функцию в одном из подключенных к нему скриптов или компонентов, когда нам не нужна обратная связь. Например,
SendMessage это отличный способ, чтобы отправить сообщение на другой игровой объект и вызвать функцию в одном из подключенных к нему скриптов или компонентов, когда нам не нужна обратная связь. Например,
→In the editor window, the Inspector shows the otherScript field. We drag and drop an object containing the script component that we want to talk to. Within the class, function calls are made directly on the variable, such as
0 В редакторе, Инспекторе будет видно поле otherScript. На это поле перетаскивается,объект содержащий скрипт, с который мы хотим связаться. А в классе, вызываем функцию этой переменой, например,
→The easiest way to have your scripts talk to each other is to have direct references to them in the form of public variables within a class. They are populated in the Unity editor with a direct link to another script.
Here is an example of direct referencing:
Here is an example of direct referencing:
0 Самый простой способ, чтобы ваши скрипты общались друг с другом, это иметь прямые ссылки к ним в форме публичных переменных в классе. В Unity редакторе задается ссылка на другой скрипт.
Вот пример прямой ссылки:
Вот пример прямой ссылки:
→1. Direct referencing manager scripts via variables set in the editor by the Inspector window.
0 1. Прямые ссылки на переменные управляющих скриптов, изменяемые в редакторе окна Инспектора.
→An important part of our manager- and component-based structures is how our scripts are going to communicate with each other. It is inevitable that we will need to access our scripts from a multitude of other areas of the game, which means we should try to provide interfaces that make the most sense. There are several different ways of communicating between scripts and objects in Unity:
0 Важная часть нашей управляющей и компонентной основы это то как наши скрипты будут взаимодействовать друг с другом. Неизбежно то, что нам по требуется получать доступ к нашим скриптам из множества других частей игры, а это значит, мы должны предоставить интерфейсы с наибольшей эффективностью. Есть несколько различных способов взаимодействия
между скриптами и объектами в Unity:
между скриптами и объектами в Unity:
Резюме
- Пол:
- мужчина
- Родной язык:
- русский
- С нами:
- с 25 сентября 2014 г. (4407 дней) по приглашению notabenoid
- Деятельность:
-
98 версий перевода
с общим рейтингом 0
