{"id":163071,"date":"2012-12-18T21:47:03","date_gmt":"2012-12-18T17:47:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=163071"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=163071","title":{"rendered":"<span class=\"post_title\">\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438\u0433\u0440\u044b \u0432 Unity3D<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" align=\"left\" src=\"http:\/\/habrastorage.org\/storage2\/ac0\/f1a\/a3b\/ac0f1aa3bb5236d2b9331ab86d06b3f9.png\" title=\"\u0418\u043d\u043e\u0433\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0436\u0430\u043d\u0440...\" alt=\"\u0418\u043d\u043e\u0433\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0436\u0430\u043d\u0440...\"\/> \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043d\u0435 \u043a\u0430\u0437\u0443\u0430\u043b\u043a\u0443 \u043f\u043e\u0434 \u0432\u0435\u0431 \u0438 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u0449\u0430\u0434\u043d\u044b\u0439 \u0441\u0443\u0440\u043e\u0432\u044b\u0439 \u0440\u043e\u0433\u0430\u043b\u0438\u043a, \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0434\u0438\u0441\u043a \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c.<br \/>  \u041a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 Unity? \u0412\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u0443\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u2014 \u0435\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0441 PlayerPrefs \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 XML \u0438\u043b\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 *SQL*, \u043c\u043e\u0436\u043d\u043e, \u0432 \u043a\u043e\u043d\u0446\u0435-\u043a\u043e\u043d\u0446\u043e\u0432, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<br \/>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430, \u0438 \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0435\u043d\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438-\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438.<\/p>\n<p>  \u0411\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0439 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043d\u0430\u0432\u044b\u043a\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0441 \u044d\u0442\u0438\u043c \u0434\u0432\u0438\u0436\u043a\u043e\u043c \u0432\u043b\u0430\u0434\u0435\u0435\u0442. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u0442\u044c \u043e \u0441\u0443\u0449\u0435\u0441\u0442\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 PlayerPrefs, GUI, \u0438 \u0435\u0449\u0451 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435 \u0437\u043d\u0430\u0442\u044c \u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0421 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u043c \u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f.<br \/>  \u0410 \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0430 \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u043d\u0435 \u0441\u0442\u0430\u043b\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0443\u0436 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043e\u043d\u0430 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\/\u043f\u043b\u0430\u043d\u0448\u0435\u0442\u043d\u043e\/\u043e\u043d\u043b\u0430\u0439\u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u043e\u0434 \u0432\u0438\u043d\u0434\u0443 (\u0445\u043e\u0442\u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e). <\/p>\n<ul>\n<li>\u041a\u0441\u0442\u0430\u0442\u0438, \u043f\u0430\u0440\u0443 \u043d\u0435\u0434\u0435\u043b\u044c \u043d\u0430\u0437\u0430\u0434 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0431\u044b\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b, \u0447\u0442\u043e Unity3D \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0432 \u043a\u0443\u0440\u0441\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0430 \u043a\u0430\u0444\u0435\u0434\u0440\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0438 \u043f\u0438\u0442\u0435\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u043c\u0435\u0445\u0430. \u0417\u0430\u043d\u044f\u0442\u043d\u044b\u0439 \u0444\u0430\u043a\u0442, \u043d\u0435\u043c\u0430\u043b\u043e \u0433\u043e\u0432\u043e\u0440\u044f\u0449\u0438\u0439 \u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0434\u0432\u0438\u0436\u043a\u0430.<br \/>  \u0425\u043e\u0442\u044f \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0438\u0434\u0435\u044f \u2014 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0434\u0430\u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 =) <\/li>\n<\/ul>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<p>  \u0415\u0449\u0451 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440 \u2014 \u044f \u043d\u0435 \u043f\u0440\u043e\u0444\u0438 \u043d\u0438 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0442\u0435\u043c, \u0442\u0430\u043a \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0432\u0435\u0449\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0435\u0435-\u043f\u0440\u043e\u0449\u0435-\u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u2014 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442\u0441\u044f.<\/p>\n<h4>1. PlayerPrefs<\/h4>\n<p>  \u0423\u0434\u043e\u0431\u043d\u044b\u0439 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441. \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 int, float \u0438 string. \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439, \u043d\u043e \u043c\u043d\u0435 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u043e\u0431\u043e\u0440\u043e\u0442\u044b \u0432 \u0434\u0443\u0445\u0435 \u00ab<a href=\"http:\/\/answers.unity3d.com\/questions\/17873\/saveload-playerprefs.html\">\u043d\u0435 \u043c\u043e\u0433\u0443 \u043f\u043e\u043d\u044f\u0442\u044c PlayerPrefs<\/a>\u00bb \u0438\u043b\u0438 \u00ab\u043d\u0430\u0434\u043e \u0431\u044b \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 PlayerPrefs\u00bb, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0435\u0433\u043e \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435.<\/p>\n<h5>1.1 \u041f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u044b: QuickSave &#038; QuickLoad \u043f\u043e \u0445\u043e\u0442\u043a\u0435\u044f\u043c.<\/h5>\n<p>  \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u043d\u0430\u0441 \u043e\u0434\u043d\u0430 \u0441\u0446\u0435\u043d\u0430 \u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u043d\u0430 \u043d\u0435\u0439. \u0421\u043a\u0440\u0438\u043f\u0442 SaveLoad.cs \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d \u043a \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0443. \u0411\u0443\u0434\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0435 \u2014 \u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. <\/p>\n<pre><code class=\"cs\">using UnityEngine; using System.Collections;  public class SaveLoad : MonoBehaviour {  \tpublic Transform CurrentPlayerPosition; \t \tvoid Update () { \t\t \t\tif(Input.GetKeyDown(KeyCode.R)) \t\t\tsavePosition(); \t\t \t\tif(Input.GetKeyDown(KeyCode.L)) \t\t\tif (PlayerPrefs.HasKey(&quot;PosX&quot;))  \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \t\t\t\tloadPosition();  \t\tif(Input.GetKeyDown(KeyCode.D)) \t\t\tPlayerPrefs.DeleteAll();\t\/\/ \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u0432\u0441\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \t}  \tpublic void savePosition(){ \t\t \t\tTransform CurrentPlayerPosition = this.gameObject.transform; \t\t \t\tPlayerPrefs.SetFloat(&quot;PosX&quot;, CurrentPlayerPosition.position.x); \/\/ \u0442.\u043a. \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b  \t\tPlayerPrefs.SetFloat(&quot;PosY&quot;, CurrentPlayerPosition.position.y); \/\/ \u0441 \u043c\u0430\u0441\u0441\u0438\u0432\u0430\u043c\u0438 \u043d\u0435\u0442, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u043c \u043d\u0430 \t\tPlayerPrefs.SetFloat(&quot;PosZ&quot;, CurrentPlayerPosition.position.z);  \/\/ \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 float \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \t\t \t\tPlayerPrefs.SetFloat(&quot;AngX&quot;, CurrentPlayerPosition.eulerAngles.x);  \t\tPlayerPrefs.SetFloat(&quot;AngY&quot;, CurrentPlayerPosition.eulerAngles.y); \t\t \t\tPlayerPrefs.SetString(&quot;level&quot;, Application.loadedLevelName); \/\/ \u0435\u0449\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c\/\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438 \t\tPlayerPrefs.SetInt(&quot;level_id&quot;, Application.loadedLevel); \/\/ \u0438 \u0446\u0435\u043b\u044b\u0435 \t} \t \tpublic void loadPosition(){ \t \t\tTransform CurrentPlayerPosition = this.gameObject.transform; \t \t\tVector3 PlayerPosition = new Vector3(PlayerPrefs.GetFloat(&quot;PosX&quot;),  \t\t\t\t\tPlayerPrefs.GetFloat(&quot;PosY&quot;), PlayerPrefs.GetFloat(&quot;PosZ&quot;)); \t\tVector3 PlayerDirection = new Vector3(PlayerPrefs.GetFloat(&quot;AngX&quot;), \/\/ \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430  \t\t\t\t\tPlayerPrefs.GetFloat(&quot;AngY&quot;), 0);  \/\/ \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \t \t\tCurrentPlayerPosition.position = PlayerPosition; \/\/ \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0438\u0445 \t\tCurrentPlayerPosition.eulerAngles = PlayerDirection; \t} } <\/code><\/pre>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u0443\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 PlayerPrefs \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u0443\u043c\u0430\u043d\u043e \u2014 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0442\u0438\u0432 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0433\u0440\u0443 \u0441 \u043c\u0435\u0441\u0442\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430.<\/p>\n<p>  \u0417\u0430\u0442\u043e \u0432\u0435\u0441\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u0438\u0434\u0435\u043d: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0442\u0440\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 Get \/ Set \u043f\u043e \u043a\u043b\u044e\u0447\u0443, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0443, \u043e\u0447\u0438\u0441\u0442\u043a\u0430. \u041d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u0430\u0436\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c ScriptReference, \u0432\u0441\u0451 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439: <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/PlayerPrefs.html\"><code>PlayerPrefs<\/code><\/a><\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0432\u0441\u0451 \u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, PlayerPrefs.Save. \u0412 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e \u044e\u043d\u0438\u0442\u0438 \u043f\u0438\u0448\u0435\u0442 PlayerPrefs \u043d\u0430 \u0434\u0438\u0441\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0432 \u043e\u0431\u0449\u0435\u043c-\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u043a\u043b\u0430\u0441\u0441 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0435 \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043e\u0431\u043c\u0435\u043d \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0438 \u043d\u0430 \u0438\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0430\u043d\u0441\u0430\u043c\u0438. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, Save() \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0439 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439 \u043a\u0440\u044d\u0448\u0430.<\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u044d\u0442\u043e \u0442\u0430\u043a \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e\u0434 Win PlayerPrefs \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0432 \u0440\u0435\u0435\u0441\u0442\u0440, \u0438, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0438 \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443.<br \/>  \u041a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/962\/8f4\/ab9\/9628f4ab9cf29196c76e86afb633d482.png\"\/><\/p>\n<p>  \u041a\u043e \u0432\u0441\u0435\u043c \u043a\u043b\u044e\u0447\u0430\u043c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0438\u0445 <a href=\"http:\/\/www.cse.yorku.ca\/~oz\/hash.html\">DJBX33X<\/a>-\u0445\u0435\u0448 (Bernshtein hash with XOR).<\/p>\n<p>  UnityGraphicsQuality \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e Quality level \u0438\u0437 Edit -&gt; Project Settings Quality, \u043e\u043d\u043e \u0436\u0435 <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/QualitySettings.SetQualityLevel.html\"><code>QualitySettings.SetQualityLevel<\/code><\/a>.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435, \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u2014 \u0438 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0422.\u0435. \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0434\u0443\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b PlayerPrefs \u2014 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0430 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. <\/p>\n<p>  <\/p>\n<h4>2. \u0421\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432 XML<\/h4>\n<p>  \u0413\u043e\u0432\u043e\u0440\u0438\u043c \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0434. \u0422\u0430\u043a\u043e\u0435 <a href=\"http:\/\/habrahabr.ru\/post\/60317\/#comment_1645869\">\u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f<\/a>, \u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442. \u041f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0439\/\u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442. \u0410 \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u2014 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c\/\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c.<\/p>\n<p>  \u0412\u043e\u043e\u0431\u0449\u0435 Mono \u0443\u043c\u0435\u0435\u0442 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u0438 <a href=\"http:\/\/www.mono-project.com\/XML\">XML<\/a> (System.Xml.Serialization), \u043d\u043e \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442: \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432 Unity \u043d\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e. \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c GameObject, \u0438\u043b\u0438 \u043a\u043b\u0430\u0441\u0441, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 MonoBehavoir: \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u0439 \u043a\u043b\u0430\u0441\u0441, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043d\u0443\u0436\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0435\u0433\u043e. \u041d\u043e XmlSerializer \u0445\u043e\u0442\u044f \u0431\u044b \u043a\u0443\u0448\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 Vector3, \u0430 BinarySerializer, afaik, \u0434\u0430\u0436\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0443\u043c\u0435\u0435\u0442.<\/p>\n<h5>2.1 \u0421\u0443\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u0430<\/h5>\n<p>  \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 <i>\u0441\u0432\u043e\u0439 Portal<\/i>, \u0433\u0434\u0435 \u0433\u0435\u0440\u043e\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0434\u0443 \u043e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0446\u0438\u0439 \u2014 \u043d\u043e \u043d\u0430 \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u043d\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f. \u041f\u0440\u0438\u0447\u0451\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u043e\u043d \u043c\u043e\u0433 \u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u043e\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435: \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e-\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u0442\u044c, \u0447\u0442\u043e-\u0442\u043e \u0440\u0430\u0441\u0448\u0432\u044b\u0440\u044f\u0442\u044c. \u0425\u043e\u0447\u0435\u0442\u0441\u044f, \u044d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c, \u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 \u043b\u043e\u043a\u0430\u0446\u0438\u044e \u043c\u0430\u043b\u043e\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0438 \u043d\u0435\u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u0443\u0435\u043c\u043e, \u0438 \u0442\u0430\u0449\u0438\u0442\u044c \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043d\u0430\u0442 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043a\u0435 \u043d\u0435\u0442 \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430. \u0411\u0443\u0434\u0435\u043c \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u043e\u043a\u0430\u0446\u0438\u044e, \u043f\u043e\u043a\u0438\u0434\u0430\u044f \u0435\u0451 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0443 \u043d\u0430 \u0434\u0432\u0435\u0440\u0438. \u0410 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0431\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043b\u0438\u0431\u043e, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e \u043d\u0438\u043c.<\/p>\n<h5>2.2 \u0421\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/h5>\n<p>  XmlSerializer \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0442\u0438\u043f\u043e\u0432, \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 Collections[.Generic]. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0443 \u043a\u043b\u0430\u0441\u0441\u0430 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0438 public-\u0434\u043e\u0441\u0442\u0443\u043f \u043a\u043e \u0432\u0441\u0435\u043c \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u043c \u043f\u043e\u043b\u044f\u043c.<br \/>  \u041d\u0435\u043a\u0442\u043e\u0440\u044b\u0435 \u0442\u0438\u043f\u044b \u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u042e\u043d\u0438\u0442\u0438 (\u0432\u0440\u043e\u0434\u0435 Vector3, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0438 \u0438\u043d\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044f) \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u044d\u0442\u043e\u0442 \u0444\u0435\u0439\u0441\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c, \u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445, \u0435\u0433\u043e \u0444\u0435\u0439\u043b\u044f\u0442.<\/p>\n<p>  \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u0435 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 GameObject&#8217;\u043e\u0432. \u041d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \u0417\u043d\u0430\u0447\u0438\u0442, \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0432 Standard Assets:<\/p>\n<pre><code class=\"cs\">using UnityEngine; using System.Collections.Generic; using System.Xml.Serialization;  using System;   [XmlRoot(&quot;RoomState&quot;)] [XmlInclude(typeof(PositData))]  public class RoomState {\t\t\/\/  \u043a\u043b\u0430\u0441\u0441, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0432 \u0446\u0435\u043b\u043e\u043c  \t[XmlArray(&quot;Furniture&quot;)] \t[XmlArrayItem(&quot;FurnitureObject&quot;)] \tpublic List&lt;PositData&gt; furniture = new List&lt;PositData&gt;(); \/\/ \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u0445 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432  \tpublic RoomState() { }   \/\/ \u043f\u0443\u0441\u0442\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440  \tpublic void AddItem(PositData item) {\t\/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 - \u0431\u0443\u0434\u0435\u043c \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \t\tfurniture.Add(item);\t\t\t\/\/ \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \t} \t \tpublic void Update(){    \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430-\u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432  \t\tforeach (PositData felt in furniture) \/\/ \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \t\t\tfelt.Update();\t\t \t} } <\/code><\/pre>\n<p>  \u0412 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0445 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u0438\u0434\u0443\u0442 <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/83y7df3e(v=vs.80).aspx\">\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f XML-\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439<\/a>. \u0422\u0443\u0442 \u043e\u043d\u0438 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043b\u0438\u044f\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0438\u043c\u0435\u043d\u0430 \u0442\u0435\u0433\u043e\u0432 \u0432 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u043c *.xml, \u0438 \u0441\u0442\u0440\u043e\u0433\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u043d\u0438\u0445 \u043d\u0435\u0442. \u041d\u043e \u043f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0443\u0442, \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \ud83d\ude42 \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0432\u0434\u0440\u0443\u0433 \u0432\u0430\u0436\u043d\u043e, \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c xml-\u043a\u043e\u0434, \u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432, \u043a\u043e\u043d\u0435\u0447\u043d\u043e <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/2baksw0z(v=vs.80).aspx\">\u0448\u0438\u0440\u0435<\/a>.<\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435 \u0442\u0430\u043c \u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043d\u0430c\u043b\u0435\u0434\u0443\u0435\u043c\u044b\u0445 \u043e\u0442 \u043d\u0435\u0433\u043e. \u0425\u043e\u0442\u044f\u2026 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0445\u0432\u0430\u0442\u0438\u0442 \u0438 \u043e\u0434\u043d\u043e\u0433\u043e:<\/p>\n<pre><code class=\"cs\">[XmlType(&quot;PositionData&quot;)] [XmlInclude(typeof(Lamp))]  public class PositData { \tprotected GameObject _inst;\t\/\/ \u0442\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043e\u0442\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \tpublic GameObject inst { set { _inst = value; } } \t \t[XmlElement(&quot;Type&quot;)] \tpublic string Name { get; set; }  \/\/ \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0430\u0431\u0430 \u0438\u0437 Resourses \t \t[XmlElement(&quot;Position&quot;)] \tpublic Vector3 position {get; set; }  \t \tpublic PositData() { } \t \tpublic PositData(string name, Vector3 position) \t{ \t\tthis.Name = name; \t\tthis.position = position; \t} \t \tpublic virtual void Estate(){  }   \/\/ \u0434\u043b\u044f &quot;\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438&quot; \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \t \tpublic virtual void Update(){  \/\/ \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0435\u0444\u043b\u0435\u043a\u0442\u043e\u0440\u0430 \t\tposition = _inst.transform.position;  \/\/ \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \t} \t }  [XmlType(&quot;Lamp&quot;)]  public class Lamp : PositData   \/\/ \u043b\u0430\u043c\u043f\u043e\u0447\u043a\u0430, \u043a\u0440\u043e\u043c\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043c\u043e\u0436\u0435\u0442 \u0435\u0449\u0451 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\/\u0432\u044b\u043a\u043b {\t \t[XmlAttribute(&quot;Light&quot;)] \tpublic bool lightOn { get; set; } \t \tpublic Lamp() { } \t \tpublic Lamp(string name, Vector3 position, bool lightOn): base(name, position) { \t\tthis.lightOn = lightOn; \t} \t \tpublic override void Estate(){ \t\tif (!lightOn) ((Light)(_inst.GetComponentInChildren(typeof(Light)))).enabled = false; \t}\t\t\/\/ \u0438\u0441\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432 \u043f\u0440\u0435\u0444\u0430\u0431\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 Light \u0432\u043a\u043b\u044e\u0447\u0435\u043d  \t \tpublic override void Update(){ \t\tbase.Update(); \t\tlightOn = ((Light)_inst.GetComponentInChildren(typeof(Light))).enabled; \t}  \/\/ lightOn = \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 Light \u043d\u0430 \u043b\u0430\u043c\u043f\u0435 } <\/code><\/pre>\n<p>  \u0418\u0442\u0430\u043a, \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0443\u0435\u043c\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u0433\u043e\u0442\u043e\u0432\u044b. \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0449\u0451 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 RoomState.<\/p>\n<h5>2.3 \u041d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h5>\n<p>  \u0422\u043e\u0436\u0435 \u0432 Standard Assets \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441 \u0441 \u043f\u0430\u0440\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0431\u0443\u0434\u0435\u043c \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f:<\/p>\n<pre><code class=\"cs\">using System.Xml.Serialization;  using System; using System.IO;  \t public class Serializator { \t \tstatic public void SaveXml(RoomState state, string datapath){  \t\tType[] extraTypes= { typeof(PositData), typeof(Lamp)}; \t\tXmlSerializer serializer = new XmlSerializer(typeof(RoomState), extraTypes);   \t\tFileStream fs = new FileStream(datapath, FileMode.Create);  \t\tserializer.Serialize(fs, state);  \t\tfs.Close();   \t} \t \tstatic public RoomState DeXml(string datapath){  \t\tType[] extraTypes= { typeof(PositData), typeof(Lamp)}; \t\tXmlSerializer serializer = new XmlSerializer(typeof(RoomState), extraTypes);  \t\t \t\tFileStream fs = new FileStream(datapath, FileMode.Open);  \t\tRoomState state = (RoomState)serializer.Deserialize(fs);  \t\tfs.Close();   \t\treturn state; \t} } <\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c XmlSerializer \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 <a href=\"http:\/\/msdn.microsoft.com\/en-US\/library\/e5aakyae(v=vs.80).aspx\">Constructor (Type, Type[])<\/a><br \/>  FileStream \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043b\u043e\u043a\u0430\u0446\u0438\u0435\u0439.<\/p>\n<h5>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435<\/h5>\n<p>  \u0418\u0442\u0430\u043a, \u0432\u0441\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0433\u043e\u0442\u043e\u0432\u044b, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0441\u0430\u043c\u043e\u0439 \u043a\u043e\u043c\u043d\u0430\u0442\u0435. \u041d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0432\u0435\u0448\u0430\u0435\u043c:<\/p>\n<pre><code class=\"cs\">public class RoomGen : MonoBehaviour {  \tprivate RoomState state;\t\/\/ \u043e\u0442\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \tprivate string datapath;\t\/\/ \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043b\u043e\u043a\u0430\u0446\u0438\u0438 \t \tvoid Start () { \t\tdatapath = Application.dataPath + &quot;\/Saves\/SavedData&quot; + Application.loadedLevel + &quot;.xml&quot;;  \t\tif (File.Exists(datapath))\t\/\/ \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \t\t\tstate = Serializator.DeXml(datapath);  \/\/ \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c state \u043e\u0442\u0442\u0443\u0434\u0430 \t\telse  \t\t\tsetDefault();\t\t\/\/ \u0438\u043d\u0430\u0447\u0435 \u0437\u0430\u0434\u0430\u0451\u043c \u0434\u0435\u0444\u043e\u043b\u0442 \t\t \t\tGenerate();\t\/\/ \t\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u043b\u043e\u043a\u0430\u0446\u0438\u044e \u043f\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438\u0437 state \t\t \t} \t \tvoid setDefault(){\t \t\tstate = new RoomState(); \t\t\/\/ chair, table, lamp - \u043d\u0443\u0436\u043d\u044b\u0435 \u043f\u0440\u0435\u0444\u0430\u0431\u044b \u0438\u0437 Resourses \t\tstate.AddItem(new PositData(&quot;chair&quot;, new Vector3(15f, 1f, -4f))); \t\tstate.AddItem(new PositData(&quot;chair&quot;, new Vector3(10f, 1f, 0f))); \t\tstate.AddItem(new PositData(&quot;table&quot;, new Vector3(5f, 1f, 4f))); \t\tstate.AddItem(new Lamp(&quot;lamp&quot;, new Vector3(5f, 4f, 4f), true));  \t} \t \tvoid Generate(){ \t\tforeach (PositData felt in state.furniture){  \/\/ \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432 \u0432 \u043a\u043e\u043c\u043d\u0430\u0442\u0435 \t\t\tfelt.inst = Instantiate(Resources.Load(felt.Name), felt.position, Quaternion.identity) as GameObject; \t\t\t\/\/ \u043e\u0432\u0435\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u043c \u0438\u0445 \t\t\tfelt.Estate(); \/\/ \u0438 \u0437\u0430\u0434\u0430\u0451\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \t\t}\t\t\t\t \t} \t \tvoid Dump() { \t\tstate.Update(); \/\/ \u0432\u044b\u0437\u043e\u0432 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f state         \tSerializator.SaveXml(state, datapath); \/\/ \u0438 \u0435\u0433\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \t} } <\/code><\/pre>\n<p>  \u041d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a, \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0437\u043e\u0432 RoomGen.Dump(). \u041f\u0443\u0441\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u043c \u043d\u0430 \u0434\u0432\u0435\u0440\u044f\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u043c\u043d\u0430\u0442\u044b (\u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c RoomGen):<\/p>\n<pre><code class=\"cs\">using UnityEngine; using System.Collections;  public string nextRoom;  public class Door : MonoBehaviour { \t \tvoid OnTriggerEnter(Collider hit) \t{ \t\t \t\tif (hit.gameObject.tag == &quot;Player&quot;) \t\t{ \t\t\tSendMessageUpwards(&quot;Dump&quot;); \t\t\tApplication.LoadLevel(nextRoom); \t\t} \t} } <\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0438 \u0432\u0441\u0451. \u0417\u0434\u0435\u0441\u044c \u043e\u043f\u0443\u0449\u0435\u043d\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043d\u043e \u044d\u0442\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c. \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0430\u0440\u0443 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0449\u0438\u0445 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u043e \u0445\u043e\u0442\u043a\u0435\u044f\u043c, \u0438\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u0430\u0443\u0437\u0443 \u0438 \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438.<\/p>\n<p>  \u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043c\u043f\u044f\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b, \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437 \u0444\u0430\u0439\u043b\u0430, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u043b\u043e\u0441\u044c. Works like a charm.<\/p>\n<p>  \u041e\u0434\u0438\u043d \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 XML \u2014 \u0438\u0433\u0440\u043e\u043a \u043c\u043e\u0436\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u0418 \u0435\u0441\u043b\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u0430\u043b\u043e \u043a\u043e\u0433\u043e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0442\u0443\u043b\u044c\u0435\u0432, \u0442\u043e \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0438\u0433\u0440\u043e\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 XML \u043b\u0443\u0447\u0448\u0435 \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c. \u0414\u0430 \u0438 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0443\u0436\u0435 \u043b\u0443\u0447\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442.<\/p>\n<h4>3. Save\/Load \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u043d\u044e<\/h4>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0435\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c\/\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\u043c\u0438. \u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0435\u0439 \u0438\u0433\u0440\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0435 \u043c\u0435\u043d\u044e Save\/Load, \u0442\u043e \u0432\u0440\u044f\u0434 \u043b\u0438 \u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u0435\u0439\u043a\u0443 \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0430\u043d\u043e\u0432.<\/p>\n<p>  \u041d\u043e \u044f \u0436\u0434\u0443 \u043d\u0435 \u0434\u043e\u0436\u0434\u0443\u0441\u044c \u043d\u043e\u0432\u043e\u0433\u043e\u0434\u043d\u0438\u0445 \u043f\u0440\u0430\u0437\u0434\u043d\u0438\u043a\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0443\u0432\u0438\u0434\u0435\u0442\u044c\u0441\u044f \u0441 \u0441\u0435\u0441\u0442\u0440\u043e\u0439 \u0438 \u0437\u0430 \u043f\u0430\u0440\u0443 \u0432\u0435\u0447\u0435\u0440\u043e\u0432 \u0434\u043e\u0431\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0443\u044e American McGee&#8217;s Alice, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u043c Save\/Load \u043f\u043e\u0447\u0442\u0438 \u043a\u0430\u043a \u0442\u0430\u043c. \u0421\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438. \u0417\u0430\u043e\u0434\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u043e\u0434 \u043f\u043e\u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 GUI, \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0430\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 <i>\u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445<\/i> \u0432\u0435\u0449\u0430\u0445.<\/p>\n<h5>3.1 \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e<\/h5>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u043d\u044e, \u043d\u0430\u043c, \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043c\u0435\u043d\u044e. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u0441\u0446\u0435\u043d\u0435, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u044e\u0437\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438\u0440\u043e\u0434\u0435 <a href=\"http:\/\/www.tasharen.com\/?page_id=140\">NGUI <\/a>, \u043d\u043e \u043c\u044b \u043f\u043e\u043a\u0430 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/GUI.html\">GUI<\/a> \u0438\u0437 \u0448\u0442\u0430\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<ul>\n<li> <b>Scripting Reference<\/b><br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u0433\u043e\u0434\u044f\u0442\u0441\u044f:<br \/>  <code>OnGUI()<\/code> \u2014 \u0444\u0443\u043d\u043a\u0446\u0438\u044f MonoBehaviour \u0434\u043b\u044f \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0438 GUI \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043d\u0438\u043c \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u041d\u0435\u0447\u0442\u043e \u0432\u0440\u043e\u0434\u0435 Update(), \u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f GUI \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u043e\u0436\u0435\u0442 \u0447\u0430\u0449\u0435, \u0447\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0440\u0435\u0439\u043c.\n<p>  <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/GUI.Button.html\"><code>GUI.Button<\/code><\/a>  <\/p>\n<pre><code class=\"cs\">static bool Button(Rect position, String text); static bool Button(Rect position, Textureimage ); <\/code><\/pre>\n<p>  \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438. \u0420\u0438\u0441\u0443\u0435\u0442 \u0435\u0451 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430, \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u0435, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044f true. \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u043d\u0430\u043c \u0445\u0432\u0430\u0442\u0438\u0442 \u044d\u0442\u0438\u0445.<\/p>\n<p>  <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/GUI.BeginGroup.html\"><code>GUI.BeginGroup<\/code><\/a><code>, GUI.EndGroup<\/code>  <\/p>\n<pre><code class=\"cs\">static void BeginGroup (Rect position); static void EndGroup (); <\/code><\/pre>\n<p>  \u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0433\u0443\u0438, \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u0433\u0440\u0430\u043d\u0438\u0446 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e \u044d\u0442\u043e \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u044d\u043a\u0440\u0430\u043d\u0430, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u0442 \u2014 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a position).  <\/li>\n<li><b>\u0421\u0443\u0442\u044c<\/b><br \/>  \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0443\u044e \u0441\u0446\u0435\u043d\u0443, \u0430 \u043d\u0430 \u043d\u0435\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u0435\u043d\u044e. \u0422.\u043e. \u043c\u0435\u043d\u044e \u0431\u0443\u0434\u0435\u0442 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043a\u0432\u043e\u0437\u044c \u0441\u0446\u0435\u043d\u044b (\u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0432 \u043d\u0435\u0451), \u0445\u044d\u043d\u0434\u043b\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f (\u0432\u0440\u043e\u0434\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u043d\u044e), \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0432\u0435\u0440\u0445 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438\u0433\u0440\u044b.  <\/li>\n<li>\u043f\u043e \u043a\u043e\u0434\u0443 \u0441 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438 \u0432\u0441\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u044f\u0441\u043d\u043e:<\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"cs\">public class MenuScript : MonoBehaviour { \t \tpublic Texture2D backgroundTexture;  \t\/\/ \u0444\u043e\u043d \u0434\u043b\u044f \u0440\u0435\u0436\u0438\u043c\u0430 \u043c\u0435\u043d\u044e \tpublic const int mainMenuWidth = 200; \t\/\/ \u0448\u0438\u0440\u0438\u043d\u0430 \u043a\u043d\u043e\u043f\u043e\u043a \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043c\u0435\u043d\u044e  \tprivate int menutype = 0; \t\t\/\/ \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0438\u043f \u043c\u0435\u043d\u044e - \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435 \tprivate bool menuMode = true;\t\/\/ \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043b\u0438 \u043c\u0435\u043d\u044e \tprivate bool gameMode = false;\t\/\/ \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0433\u0440\u0430 - \t\t\t\t\t\t\t\t\t\t\/\/ false  \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e Load \/ New Game \tprivate void Awake(){ \t\tDontDestroyOnLoad(this);\t \/\/ \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u0435\u043d\u044e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u043e\u0432\u044b\u0445 \u0441\u0446\u0435\u043d \t}  \tvoid Update () {\t\t \t\t\tif (Input.GetKeyDown(KeyCode.Escape)){  \/\/ warning! \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e: Input.GetKey() \t\t\t \t\t\t\tif(gameMode)\t \t\t\t\t\tif (menutype == 0 || !menuMode){ \/\/ \u0435\u0441\u043b\u0438 \u043c\u044b \u0432 \u0438\u0433\u0440\u0435 \u0438\u043b\u0438 \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043c\u0435\u043d\u044e \t\t\t\t\t\tswitchGameActivity();\t\t\/\/ \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0438\u0432\u0430\u0435\u043c\/\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0438\u0433\u0440\u043e\u0432\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \t\t\t\t\t\t\t\t\t\t\t\t\/\/  (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u044b) \t\t\t\t\t\tmenuMode = !menuMode; \t\t\t\t\t} \t\t\t\tmenutype = 0;  \/\/ \u0441 \u0431\u043e\u043b\u0435\u0435 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u043c\u0435\u043d\u044e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432 \u043a\u043e\u0440\u0435\u043d\u044c \t\t\t}\t\t\t\t\t\/\/ \u0438\u0437 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u0433\u0440\u0443\u0437\u0438\u0442 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \t} \t \tprivate void OnGUI(){\t\t \t \t\tif (menuMode){ \t\t\t \t\t\tif(backgroundTexture != null)\t\t\/\/ \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \t\t\t\tGUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), backgroundTexture); \t\t\t \t\t\tswitch (menutype){ \t\t\t\tcase 0: drawMainMenu(); break; \t\t\t\tcase 1: \t\t\t\tcase 2: drawSaveLoadMenu(); break; \t\t\t} \t\t} \t}  \tprivate void drawMainMenu(){\t  \t\tGUI.BeginGroup (new Rect (Screen.width \/ 2 - mainMenuWidth\/2, Screen.height \/ 2 - 180, mainMenuWidth, 240)); \t\t \t\t\tif (gameMode) \t\t\t\tif(GUI.Button(new Rect(0,0, mainMenuWidth,30) , &quot;Resume&quot;)){ \t        \t\tmenuMode = false; \t\t\t\t\tswitchMouseLook(); \t\t\t\t} \t\t\t \t\t\tif(GUI.Button(new Rect(0, 40, mainMenuWidth, 30) , &quot;New Game&quot;)){ \t\t\t\tmenuMode = false; \t\t\t\tgameMode = true; \t\t\t\tApplication.LoadLevel(&quot;first_scene&quot;); \t\t\t} \t\t\t \t\t\tif (gameMode) \t\t\t\tif(GUI.Button(new Rect(0, 2*40, mainMenuWidth, 30) , &quot;Save&quot;)) \t\t\t\t\tmenutype = 1; \t\t \t\t\tif(GUI.Button(new Rect(0, ((gameMode)? 3 : 2)*40, mainMenuWidth, 30) , &quot;Load&quot;)){  \t\t\t\tmenutype = 2;\t\/\/ \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 &quot;2 + gameMode&quot;? C#, nuff said. \t\t \t\t\tif(GUI.Button(new Rect(0, ((gameMode)? 4 : 3)*40, mainMenuWidth, 30) , &quot;Options&quot;)){} \t\t\t \t\t\tif(GUI.Button(new Rect(0, ((gameMode)? 5 : 4)*40, mainMenuWidth, 30) , &quot;Quit Game&quot;)){ \t\t\t\tApplication.Quit(); \t\t\t} \t\t\t \t\tGUI.EndGroup();\t \t\t \t}  \tvoid switchGameActivity(){\t\/\/ \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 c\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 MouseLook, \t\tCamera mk = Camera.main;  \/\/ \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u043a\u0430\u043c\u0435\u0440\u0443 \u043f\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044e \u043c\u044b\u0448\u0438. \u0412\u043e\u043e\u0431\u0449\u0435 \u0442\u0443\u0442 \u0441\u0442\u043e\u0438\u0442 \t\tMouseLook ml = mk.GetComponent&lt;MouseLook&gt;();\t \/\/  \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0432\u0441\u0435\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432\u0432\u043e\u0434\u0430 \t\tif (ml != null) ml.enabled = !ml.enabled; \t\/\/ \u0438 \u0432\u0441\u044e \u0434\u0438\u043d\u0430\u043c\u0438\u043a\u0443 \t} \t } <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/416\/200\/93a\/41620093ae5f50a1248606e68335bce3.png\"\/><\/p>\n<p>  <i>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \u0434\u043e \u0438 \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0433\u0440\u044b<\/i><\/p>\n<h5>3.2 \u0420\u0438\u0441\u0443\u0435\u043c \u043c\u0435\u043d\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \/ \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f<\/h5>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044f drawSaveLoadMenu() \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 menutype&gt;0, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430. \u0418\u0441\u043f\u0440\u0430\u0432\u0438\u043c \u044d\u0442\u043e \u0443\u043f\u0443\u0449\u0435\u043d\u0438\u0435. \u041f\u043e\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0438 \u043c\u0435\u043d\u044e \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<\/p>\n<ul>\n<li> <b>Scripting Reference<\/b><br \/>   <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/GUI.SelectionGrid.html\"><code>GUI.SelectionGrid<\/code><\/a> \u2014 \u0440\u0438\u0441\u0443\u0435\u0442 \u0441\u0435\u0442\u043a\u0443 \u043a\u043d\u043e\u043f\u043e\u043a, \u043d\u043e \u043f\u043e \u0441\u0443\u0442\u0438 \u044d\u0442\u043e \u043e\u0434\u043d\u043e\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b\u0439 \u0441\u0435\u043b\u0435\u043a\u0442. \u0412\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0431\u0440\u0430\u043d \u043e\u0434\u0438\u043d \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u043e\u043c\u0435\u0440 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e.<br \/> \n<pre><code class=\"cs\">static int SelectionGrid (Rect position , int defaultSelected, Texture[] images, int elsInRow); static int SelectionGrid (Rect position , int defaultSelected, string[] texts, int elsInRow); <\/code><\/pre>\n<p>  \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u2014 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0412\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"cs\">public int selGridInt = 0;  \/\/ \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0437\u0430\u0434\u0430\u0451\u043c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u043f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 public string[] selStrings = new string[] {&quot;Grid 1&quot;, &quot;Grid 2&quot;, &quot;Grid 3&quot;, &quot;Grid 4&quot;};  void OnGUI() { \/\/ \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u0435\u0440\u0436\u0438\u043c \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u044d\u0442\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e  \tselGridInt = GUI.SelectionGrid(new Rect(25, 25, 100, 30), selGridInt, selStrings, 2);  \t\t\t\t\/\/  \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 selGridInt \u0435\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e,   }  \t\t\/\/ \u0438 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u0431\u044b\u043b \u043a\u043b\u0438\u043a \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0435\u0442\u043a\u0438 <\/code><\/pre>\n<p>  <\/li>\n<li><b>\u0421\u0443\u0442\u044c<\/b><br \/>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u044d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u2014 \u043d\u0430\u043c-\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041d\u043e SelectionGrid \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0435\u0441\u0442 \u0433\u0440\u044f\u0437\u043d\u044b\u0439 \u0445\u0430\u043a \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u043d\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u043e\u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0422.\u0435. \u043c\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, -1 \u0438 \u0442\u043e\u0433\u0434\u0430 \u0441\u043c\u043e\u0436\u0435\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043a\u043b\u0438\u043a\u0430.  <\/li>\n<\/ul>\n<p>  <\/p>\n<pre><code class=\"cs\">public const int slotsAmount = 10;  \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0442\u043e\u0432 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\/\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \t\t\t\t\t\t\t\t\t\/\/ \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u0430\u0448\u0438\u0445 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432. \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043d\u0451\u043c \u0434\u0430\u043b\u044c\u0448\u0435, private Texture2D[] saveTexture = new Texture2D[slotsAmount]; \/\/ \u043f\u043e\u043a\u0430 \u0432\u0430\u0436\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0441\u043b\u043e\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442  \t\t\/\/\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435, \u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0443 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430, \u0438\u043d\u0430\u0447\u0435 null private void drawSaveLoadMenu(){ \t \tif(GUI.Button(new Rect(Screen.width \/ 2 - 100, Screen.height * 2\/3 + 50, 200, 30) , &quot;Back&quot;)) \t\tmenutype = 0; \t \tint slot = GUI.SelectionGrid( \t\t\t\t\t\tnew Rect(\t\/\/ \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0434 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0440\u0430\u043d\u0430 \u0441\u0435\u0442\u043a\u0443 5x2 \t\t\t\t\t\t\t\tScreen.width \/ 2 - Screen.height * 5\/9, \/\/ \u0441 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435\u043c \t\t\t\t\t\t\t\tScreen.height\/3,\t\/\/ \u0441\u0442\u043e\u0440\u043e\u043d \u043a\u043d\u043e\u043f\u043a\u0438 4:3 \t\t\t\t\t\t\t\tScreen.height * 10\/9, \t\t\t\t\t\t\t\tScreen.height\/3 \t\t\t\t\t\t), \t\t\t\t\t\t-1,  \/\/ \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u043d\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u043e\u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \t\t\t\t\t\tsaveTexture,  \/\/ \u0435\u0441\u043b\u0438 null, \u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0440\u0438\u0441\u0443\u0435\u0442 \t\t\t\t\t\t5);  \/\/ \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \t \tif (slot &gt;= 0)  \/\/ \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043b\u0438\u043a\u0430 \t\tif (menutype == 1) savegame(slot);  \t\/\/ \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043c\u0435\u043d\u044e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f - \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \t\telse if (menutype == 2 && saveTexture[slot] != null) loadgame (slot); } \t \/\/ \u0415\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u0441\u043b\u043e\u0442 \u043d\u0435 \u043f\u0443\u0441\u0442 - \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c. \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043b\u043e\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e,  \/\/ \u043d\u043e \u0442\u0443\u0442 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0442\u0435\u043c \u0436\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u0443\u0440 <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/c23\/7b1\/47b\/c237b147b8cb5c474b485c36fce19c49.jpg\"\/><\/p>\n<p>  <i>\u041c\u0435\u043d\u044e Load \u043d\u0430 SelectionGrid \u2014 \u0432\u043d\u0435\u0448\u043d\u0435 \u043d\u0438\u0447\u0435\u043c \u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e Save <\/i><\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u043d\u0435 \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u044d\u0442\u043e \u0447\u0442\u043e \u0432 \u043c\u0435\u043d\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0439 \u0441\u043b\u043e\u0442\u044b \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u2014 \u0432\u043d\u0435\u0448\u043d\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u044b, \u0440\u0435\u0430\u0433\u0438\u0440\u0443\u044e\u0442 \u043d\u0430 \u043d\u0430\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u043e\u043d\u0443\u0441\u043e\u043c \u2014 \u0441\u0435\u0442\u043a\u0430 \u0440\u0443\u0447\u043a\u0430\u043c\u0438, \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043b\u043e\u0442\u043e\u0432 \u0440\u0438\u0441\u0443\u0435\u043c Box, \u0434\u043b\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 Button.<br \/>  \u0417\u0430\u043e\u0434\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0440\u0435\u0437\u0438\u043d\u043e\u0432\u043e\u0441\u0442\u0438: \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0442\u043e\u0432 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430\u0434\u0430\u0451\u0442\u0441\u044f, \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u043b\u043e\u0442\u043e\u0432 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u044d\u043a\u0440\u0430\u043d. \u041f\u0440\u0430\u0432\u0434\u0430, \u0442\u0443\u0442 \u043e\u043d\u0438 \u0443\u0436\u0435 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0435, \u043d\u043e \u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \ud83d\ude42 \u041d\u0443 \u0438 \u0437\u0430\u043e\u0434\u043d\u043e min\/max width\/height \u0438\u0437 <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/GUILayout.html\">GUILayout<\/a> \u0438 \u043f\u0440\u043e\u0447\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430\u043f\u0438\u043b\u044c\u043d\u0438\u043a\u043e\u043c.<\/p>\n<pre><code class=\"cs\">public const int slotsAmount = 10;   public const int hN = 5;\t public const int margin = 20;  static private int vN = (int)Mathf.Ceil((float)slotsAmount\/hN);\t private Texture2D[] saveTexture = new Texture2D[slotsAmount];\t private int slotSize = ((Screen.width*vN)\/(Screen.height*hN) &gt;= 1) ? Screen.height\/(vN + 2) : Screen.width\/(hN + 2);  private void drawSaveLoadMenu(){ \t \tGUI.BeginGroup (new Rect (\tScreen.width \/ 2 -  (slotSize*hN - margin) \/ 2, \t\t\t\t\t\t\t\tScreen.height \/ 2 - (slotSize*vN - margin) \/ 2, \t\t\t\t\t\t\t\tslotSize*hN - margin, slotSize*vN + 40)); \t \tfor (int j = 0; j &lt; vN; j++) \t\tfor (int i = 0, curr = j*hN; (curr = j*hN + i) &lt; slotsAmount; i++){ \t\t\tif (menutype == 2 && saveTexture[curr] == null) \t\t\t\tGUI.Box(new Rect(slotSize*i, slotSize*j, slotSize - margin, slotSize - margin), &quot;&quot;); \t\t\telse  \t\t\t\tif(GUI.Button(new Rect(slotSize*i, slotSize*j, slotSize - margin, slotSize - margin), \t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveTexture[curr])){ \t\t\t\t\tif (menutype == 1) savestuff(curr); \t\t\t\t\telse if (menutype == 2) loadstuff (curr); \t\t\t\t}\t\t\t\t \t} \t \tif(GUI.Button(new Rect(slotSize*hN\/2 - 100, slotSize*vN , 200, 30) , &quot;Back&quot;)) \t\tmenutype = 0; \t \tGUI.EndGroup();\t } <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/aad\/0c8\/b57\/aad0c8b57229c2951547216e502c2c63.jpg\"\/><\/p>\n<p>  <i>\u041c\u0435\u043d\u044e Load \u043d\u0430 Button \u0438 Box \u2014 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u043b\u043e\u0442\u044b \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b<\/i><\/p>\n<h5>3.3 \u0422\u0435\u043a\u0441\u0442\u0443\u0440\u044b, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b<\/h5>\n<p>  \u0418\u0442\u0430\u043a, \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043c\u0435\u043d\u044e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u0435\u043a\u0441\u0442\u0443\u0440. \u041f\u0430\u043c\u044f\u0442\u0438 \u043e\u043d \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438 \u043d\u0430\u043c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u043d\u0438\u043c \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0442\u0443\u0442 \u0438 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u043e\u0441\u043e\u0431\u043e\u0439 \u043d\u0435\u0442 \u2014 \u043d\u0435 \u043f\u0438\u0445\u0430\u0442\u044c \u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0434\u0438\u0441\u043a\u043e\u043c \u0432 onGUI().<\/p>\n<p>  \u041a\u0430\u043a \u043c\u044b \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438, \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u0435\u043d\u044e \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u0438 \u043c\u0430\u0441\u0441\u0438\u0432:   <\/p>\n<pre><code class=\"cs\">private Texture2D[] saveTexture = new Texture2D[slotsAmount];<\/code><\/pre>\n<p>  \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u0435\u0439\u0432\u043e\u0432, \u043d\u043e \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e <i>\u043e \u043d\u0438\u0445<\/i>, \u0430 \u0442\u043e\u0447\u043d\u0435\u0435 \u2014 \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043b\u043e\u0442\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u041a\u0430\u043a \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u2014 \u0432\u044b\u0431\u043e\u0440 \u043a\u0430\u0436\u0434\u043e\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443 0\/1 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0442, \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u043e\u043a\u0443 \u0438\u0437 0\/1, \u043d\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043d\u0435\u043a\u0440\u0430\u0441\u0438\u0432\u043e \ud83d\ude42 \u0438 \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u0432 int. \u0412 \u043a\u0430\u043a\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438 \u043a\u0430\u043a \u043e\u043d \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f, \u0443\u0432\u0438\u0434\u0438\u043c \u043f\u043e\u0437\u0436\u0435, \u043f\u043e\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0438\u0442\u0430\u0435\u043c.<br \/>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 Start():  <\/p>\n<pre><code class=\"cs\">int gS = PlayerPrefs.GetInt(&quot;gamesSaved&quot;); for (int i = 0; i &lt; slotsAmount && gS &gt; 0; i++, gS\/=2)  \tif (gS%2 != 0){ \t\tsaveTexture[i] = new Texture2D(Screen.width\/4, Screen.height\/4);  \/\/ \u0442\u0443\u0442 \u0442\u043e\u0442 \u0436\u0435 \u0440\u0430\u0437\u043c\u0435\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0438\u0448\u0435\u043c \u043d\u0430 \u0434\u0438\u0441\u043a \t\tsaveTexture[i].LoadImage(System.IO.File.ReadAllBytes(Application.dataPath + &quot;\/tb\/Slot&quot; + i + &quot;.png&quot;)); \t} \t\/\/ \u0438 \u0430\u0434\u0440\u0435\u0441, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u043e\u0436\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0442\u0435\u043c, \u043a\u0443\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c. <\/code><\/pre>\n<p>  \u041d\u0443 \u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u0435 \u2014 \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043d\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c? \u041d\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442 <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/Application.CaptureScreenshot.html\"><code>Application.CaptureScreenshot<\/code><\/a>, \u043d\u043e \u0442\u0443\u0442 \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0430 \u043f\u043e\u0434\u0432\u043e\u0445\u0430. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u043d\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u043e\u043b\u043d\u043e\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u0435, \u0430 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432 \u043a\u043e\u043d\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043d\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e thumbnails, \u043b\u043e\u0433\u0438\u0447\u043d\u0435\u0435 \u0441\u0440\u0430\u0437\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0435\u0441\u0430\u0439\u0437. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043c\u044b \u0436\u0435 \u0434\u0435\u0440\u0436\u0438\u043c \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u0435\u043a\u0441\u0442\u0443\u0440, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0432 \u043d\u0435\u0433\u043e \u0441\u043d\u043e\u0432\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0441 \u0434\u0438\u0441\u043a\u0430? \u041d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e.<\/p>\n<p>  \u0424\u0443\u043d\u043a\u0446\u0438\u044e \u0432\u0437\u044f\u0442\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0437\u0436\u0435, \u0430 \u043f\u043e\u043a\u0430 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0432\u044b\u0434\u0435\u043b\u0438\u043c \u0432 Coroutine:<\/p>\n<pre><code class=\"cs\">IEnumerator readScreen(int i){ \t \tyield return new WaitForEndOfFrame(); \/\/ \u0442\u0430\u043a \u043c\u044b \u0438 \u0438\u0437\u0431\u0435\u0436\u0438\u043c \u043e\u0448\u0438\u0431\u043e\u043a, \u0438 \u043d\u0435 \u0437\u0430\u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0438\u043c \u0441\u0430\u043c\u043e \u043c\u0435\u043d\u044e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f :) \t \tint adjustedWidth = Screen.height * 4\/3; \/\/ \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d \tTexture2D tex1 = new Texture2D(adjustedWidth, Screen.height); \t\/\/ \u043a\u0440\u043e\u043f\u0430\u0435\u043c \u0432 \u0441\u0432\u0435\u0436\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0443 \u043d\u0443\u0436\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u044d\u043a\u0440\u0430\u043d\u0430 \ttex1.ReadPixels(new Rect((Screen.width - adjustedWidth)\/2, 0, adjustedWidth, Screen.height), 0, 0, true); \ttex1.Apply();  \t\/\/\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u0443\u044e \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0443 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \tTexture2D tex = new Texture2D(Screen.height\/3, Screen.height\/4, TextureFormat.RGB24, true); \ttex.SetPixels(tex1.GetPixels(2)); \/\/ \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430\u0448 \u0441\u0443\u0440\u043e\u0432\u044b\u0439 \u0438 \u0431\u0435\u0441\u043f\u043e\u0449\u0430\u0434\u043d\u044b\u0439 \u0440\u0435\u0441\u0430\u0439\u0437\t \tDestroy(tex1); \ttex.Apply(); \t \tsaveTexture[i] = tex;\t\t\/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u0435\u043a\u0441\u0442\u0443\u0440 \t \tFileStream fs = System.IO.File.Open(Application.dataPath + &quot;\/tb\/Slot&quot; + i + &quot;.png&quot;, FileMode.Create);  \tBinaryWriter binary = new BinaryWriter(fs); \tbinary.Write(tex.EncodeToPNG());\t\/\/ \u0438 \u043d\u0430 \u0434\u0438\u0441\u043a \tfs.Close();  } <\/code><\/pre>\n<p>  \u041d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043d\u0435\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2014 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0430 \u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442\u0443\u0440\u0430, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u0430\u044f \u0441 \u0434\u0438\u0441\u043a\u0430, \u0441\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0443. <br \/>  \u041d\u0438\u0436\u0435 \u0441\u043b\u0435\u0432\u0430 \u0434\u0432\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0445, \u0441\u043f\u0440\u0430\u0432\u0430 \u2014 \u0434\u0432\u0435 \u0441 \u0434\u0438\u0441\u043a\u0430, \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0435\u0441\u0441\u0438\u0439:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage2\/356\/ef8\/08c\/356ef808c678dd6b93fcc07d4ca34408.png\"\/><\/p>\n<h5>3.4 \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/h5>\n<p>  \u0418\u0442\u0430\u043a, \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0441 \u0448\u0435\u043b\u0443\u0445\u043e\u0439 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c. \u041d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 GUI, \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e, \u043c\u0435\u043d\u044e Save\/Load, \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438.<\/p>\n<p>  \u041a\u0430\u043a \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0441\u0446\u0435\u043d\u044b, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438 \u043d\u0430\u0448\u0438\u043c \u043c\u0435\u043d\u044e?<\/p>\n<p>  1. \u0415\u0441\u043b\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0446\u0435\u043d\u044b \u0438 \u043d\u0435\u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0435\u043c\u043e\u0433\u043e \u0434\u0430\u043b\u0435\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0433\u0440\u043e\u043a, \u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u044c) \u2014 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443.<\/p>\n<p>  2. <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/GameObject.Find.html\"><code>GameObject.Find<\/code><\/a> \u0438 <a href=\"http:\/\/docs.unity3d.com\/Documentation\/ScriptReference\/GameObject.FindWithTag.html\"><code>GameObject.FindWithTag<\/code><\/a> \u0442\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0441\u0442\u044b\u0434\u043d\u043e \u2014 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\/\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u2014 \u0440\u0430\u0437\u043e\u0432\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u0430 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0446\u0435\u043d\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u2014 \u0442\u043e, \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0442\u0435\u0433\u043e\u043c, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0435\u043d \u0441\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\/\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u044b, \u0442\u0443\u0442 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b.<\/p>\n<p>  3. &lt; \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u043e\u0434 \u0438\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0435\u0435, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0439\u0442\u0435! &gt;<\/p>\n<p>  \u0410 \u043f\u043e\u043a\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0446\u0435\u043d\u0443 \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0433\u0440\u043e\u043a\u0430. \u0418\u0433\u0440\u043e\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0446\u0435\u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f, \u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0438\u0434 \u043e\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043b\u0438\u0446\u0430, \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a \u0438\u0433\u0440\u043e\u043a\u0443 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u0430.<br \/>  \u0427\u0435\u0440\u0435\u0437 \u043d\u0435\u0451 \u0438 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f. \u0412 \u043d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432\u0441\u044f \u044d\u0442\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430 \u2014 \u0432 \u0434\u0432\u0443\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \/\/!, \u0438 \u0435\u0451 \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443 \u043d\u0430\u043c\u0438 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434\u0443.<\/p>\n<pre><code class=\"cs\">void savegame(int i) { \t \tPlayerPrefs.SetInt(&quot;slot&quot; + i + &quot;_Lvl&quot;, Application.loadedLevel);  \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c  \t\/\/ ! \tInterface \u0441i = Camera.main.GetComponent&lt;Interface&gt;(); \tif (\u0441i != null)  \u0441i.save(i); \t\/\/ \u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 PlayerPrefs \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u0443\u0435\u043c \u0441\u0430\u043c\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443  \tmenuMode = false; \/\/ \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u0438\u0437 \u043c\u0435\u043d\u044e \tswitchGameActivity(); \/\/ \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0438\u0433\u0440\u0443  \t\/\/ \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0431\u0438\u0442\u043e\u0432\u043e\u0439 \u043c\u0430\u0433\u0438\u0438. \u0410\u043f\u0434\u0435\u0439\u0442\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u043b\u043e\u0442\u043e\u0432. \t\/\/ \u041a\u0430\u043a \u0443\u0436\u0435 \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0431\u043e\u043b\u0435\u0435 \u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b. \t\/\/ \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u044d\u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \tPlayerPrefs.SetInt(&quot;gamesSaved&quot;, PlayerPrefs.GetInt(&quot;gamesSaved&quot;) | (1 &lt;&lt; i)); \t \tStartCoroutine(readScreen(i)); \/\/ \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0437 \u043c\u0435\u043d\u044e\t } <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435, \u0442\u043e \u043e\u043d \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u0430 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0451 \u0443\u0441\u043f\u0435\u0442\u044c. \u0410 \u0442\u0430\u043a, \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u043c\u0435\u0440\u044b \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u0435\u043d\u044e, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u043e\u0442 \u0436\u0435.<\/p>\n<p>  \u0421 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0435\u0449\u0451 \u043f\u0440\u043e\u0449\u0435. \u0412\u0441\u0451 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u0443\u0435\u043c, \u043f\u0440\u0438\u0447\u0451\u043c \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0435\u0451 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c. \u041f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u043d\u0438 \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0430\u043c\u0438 \ud83d\ude42<\/p>\n<pre><code class=\"cs\">void loadgame(int i) { \tif (gameMode)\t\/\/ \u043c\u0435\u043d\u044e Load \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0441\u0440\u0430\u0437\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0443\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \t\tswitchGameActivity();  \tPlayerPrefs.SetInt(&quot;Load&quot;, i); \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0439 \u0441\u043b\u043e\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d  \tApplication.LoadLevel(PlayerPrefs.GetInt(&quot;slot&quot; + i + &quot;_Lvl&quot;));  \/\/ \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c  \tmenuMode = false; \tgameMode = true; \/\/ \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0438\u0433\u0440\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0430\u0441\u044c } <\/code><\/pre>\n<p>  \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u043c \u0432\u0435\u0448\u0430\u0442\u044c \u043d\u0430 \u043a\u0430\u043c\u0435\u0440\u044b:<\/p>\n<pre><code class=\"cs\">public class Interface : MonoBehaviour { \t \tprivate Transform CurrentPlayerPosition;  \tpublic virtual void Start () { \t\tint load = PlayerPrefs.GetInt(&quot;Load&quot;);  \/\/ \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d \u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \t\tif (load &gt;= 0){  \t\t\/\/ \u0432 \u0440\u0435\u0437-\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \t\t\tload(load); \t\t\tPlayerPrefs.SetInt(&quot;Load&quot;, -1);  \/\/ \u043e\u0431\u043d\u0443\u043b\u044f\u0435\u043c Load \t\t} \t} \t \tpublic virtual void  save(int i) \t{\t\/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0438\u0433\u0440\u043e\u043a\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0432\u0441\u0435 \u0435\u0451 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \t\tCurrentPlayerPosition = this.gameObject.transform.parent.transform; \t\tPlayerPrefs.SetFloat(&quot;slot&quot; + i + &quot;_PosX&quot;, CurrentPlayerPosition.position.x); \t\tPlayerPrefs.SetFloat(&quot;slot&quot; + i + &quot;_PosY&quot;, CurrentPlayerPosition.position.y); \t\tPlayerPrefs.SetFloat(&quot;slot&quot; + i + &quot;_PosZ&quot;, CurrentPlayerPosition.position.z); \t} \t \tpublic virtual void load(int i) { \t\tCurrentPlayerPosition = this.gameObject.transform.parent.transform;  \t\t \t\t\/\/ \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \t\tVector3 PlayerPosition = new Vector3(PlayerPrefs.GetFloat(&quot;slot&quot; + i + &quot;_PosX&quot;),  \t\t\t\t\tPlayerPrefs.GetFloat(&quot;slot&quot; + i + &quot;_PosY&quot;), PlayerPrefs.GetFloat(&quot;slot&quot; + i + &quot;_PosZ&quot;));  \t\tCurrentPlayerPosition.position = PlayerPosition;  \/\/ \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e, \u0438\u0437\u043c\u0435\u043d\u044f\u044f  \t}\t\t\/\/ \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0433\u0440\u043e\u043a\u0430 \u043d\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u043e\u0435  } <\/code><\/pre>\n<p>  \u041d\u0430\u0434\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u201e\u0434\u0430\u043b\u044c\u0448\u0435 \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0430\u043c\u0438\u201c \u0431\u044b\u043b\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u044c\u044e \u043b\u0443\u043a\u0430\u0432\u0441\u0442\u0432\u0430: loadgame() \u043c\u0435\u043d\u044e \u0438 load() \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e \u043e\u0431\u043c\u0435\u043d\u044f\u043b\u0438\u0441\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0442 \u0447\u0435\u0440\u0435\u0437 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u2014 \u0440\u0435\u0435\u0441\u0442\u0440. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0442\u0443\u0434\u0430 \u043e\u0442\u043a\u0440\u043e\u0432\u0435\u043d\u043d\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u2014 \u0445\u043e\u0434 \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439. \u041c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u044f\u043c\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 load(), \u0430 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043e\u0431\u0449\u0435\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u2014 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432 \u043c\u0435\u043d\u044e, \u0438 \u0432 Start() \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043c\u0435\u043d\u044e \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<p>  \u0414\u0430\u043b\u044c\u0448\u0435. \u041e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0446\u0435\u043d \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430:<\/p>\n<pre><code class=\"cs\">public class InterfaceWAng : Interface { \t \tpublic override void Start () { \t\tbase.Start(); \t} \t \tpublic override void save(int i) \t{ \t\tbase.save(i); \t\tPlayerPrefs.SetFloat(&quot;slot&quot; + i + &quot;_AngX&quot;, CurrentPlayerPosition.eulerAngles.x); \t\tPlayerPrefs.SetFloat(&quot;slot&quot; + i + &quot;_AngY&quot;, CurrentPlayerPosition.eulerAngles.y); \t} \t \tpublic override void load(int i) \t{ \t\tbase.load(i); \t\tVector3 PlayerDirection = new Vector3(PlayerPrefs.GetFloat(&quot;slot&quot; + i + &quot;_AngX&quot;),  \t\t\t\t\tPlayerPrefs.GetFloat(&quot;slot&quot; + i + &quot;_AngY&quot;), 0);  \t\tCurrentPlayerPosition.eulerAngles = PlayerDirection; \t}  } <\/code><\/pre>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0437\u0434\u0435\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u043c \u0443\u0436\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u0431\u044b \u0437\u0430\u0449\u0438\u0442\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0441\u044f \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 PlayerPrefs \u0442\u0443\u0442 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 save() \/ load(), \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e. \u041d\u0430 \u0447\u0442\u043e? \u041c\u043e\u0436\u043d\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0438\u0437 \u0447\u0430\u0441\u0442\u0438 2 \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441-\u0440\u0435\u0444\u043b\u0435\u043a\u0442\u043e\u0440, \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 BinarySerializer.<br \/>  \u0414\u0440\u0443\u0433\u043e\u0439 \u043d\u0435\u043f\u043b\u043e\u0445\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, SQLite. \u041f\u0440\u0430\u0432\u0434\u0430, \u043f\u043e \u0441\u043b\u0443\u0445\u0430\u043c, \u043d\u0430 js \u0441 \u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0435\u0435, \u0447\u0435\u043c \u043d\u0430 \u0448\u0430\u0440\u043f\u0435, \u043d\u043e \u0438 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0432\u0441\u0451 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u0441\u044f. \u041a\u0442\u043e \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c, \u043d\u0430\u0447\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e <a href=\"http:\/\/wiki.unity3d.com\/index.php\/SQLite\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>.<\/p>\n<hr\/>\n<p>  \u042d\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0431\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0431\u0435\u0437:<\/p>\n<p>  \u0433\u0443\u0433\u043b\u0430<br \/>  <a href=\"http:\/\/docs.unity3d.com\">docs.unity3d.com<\/a><br \/>  <a href=\"http:\/\/wiki.unity3d.com\">wiki.unity3d.com<\/a><br \/>  <a href=\"http:\/\/forum.unity3d.com\">forum.unity3d.com<\/a><br \/>  <a href=\"http:\/\/answers.unity3d.com\">answers.unity3d.com<\/a><br \/>  <a href=\"http:\/\/stackoverflow.com\">stackoverflow.com<\/a><\/p>\n<p>  \u0438 \u0445\u0430\u0431\u0440\u0430. \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0438\u043c.<br \/>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0432\u0441\u0451 \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u0435\u0441\u0451\u0442 \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u043b\u044c\u0437\u0443, \u0438 \u043d\u0438\u043a\u043e\u043c\u0443 \u2014 \u0432\u0440\u0435\u0434\u0430 \ud83d\ude42    \t   \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/163071\/\"> http:\/\/habrahabr.ru\/post\/163071\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" align=\"left\" src=\"http:\/\/habrastorage.org\/storage2\/ac0\/f1a\/a3b\/ac0f1aa3bb5236d2b9331ab86d06b3f9.png\" title=\"\u0418\u043d\u043e\u0433\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0436\u0430\u043d\u0440...\" alt=\"\u0418\u043d\u043e\u0433\u0434\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442 \u0436\u0430\u043d\u0440...\"\/> \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043d\u0435 \u043a\u0430\u0437\u0443\u0430\u043b\u043a\u0443 \u043f\u043e\u0434 \u0432\u0435\u0431 \u0438 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u0449\u0430\u0434\u043d\u044b\u0439 \u0441\u0443\u0440\u043e\u0432\u044b\u0439 \u0440\u043e\u0433\u0430\u043b\u0438\u043a, \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0434\u0438\u0441\u043a \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c.<br \/>  \u041a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 Unity? \u0412\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0442\u0443\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u2014 \u0435\u0441\u0442\u044c \u043a\u043b\u0430\u0441\u0441 PlayerPrefs \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0432 XML \u0438\u043b\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 *SQL*, \u043c\u043e\u0436\u043d\u043e, \u0432 \u043a\u043e\u043d\u0446\u0435-\u043a\u043e\u043d\u0446\u043e\u0432, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0441\u0435\u0440 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<br \/>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0441 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430, \u0438 \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0435\u043d\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438-\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c\u0438.<\/p>\n<p>  \u0411\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0439 \u0434\u0430\u043b\u044c\u0448\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u043c\u0438 \u043d\u0430\u0432\u044b\u043a\u0430\u043c\u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0441 \u044d\u0442\u0438\u043c \u0434\u0432\u0438\u0436\u043a\u043e\u043c \u0432\u043b\u0430\u0434\u0435\u0435\u0442. \u041d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u0442\u044c \u043e \u0441\u0443\u0449\u0435\u0441\u0442\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0435\u0433\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 PlayerPrefs, GUI, \u0438 \u0435\u0449\u0451 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043d\u0435 \u0437\u043d\u0430\u0442\u044c \u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0421 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u043c \u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f.<br \/>  \u0410 \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0430 \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u043d\u0435 \u0441\u0442\u0430\u043b\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0443\u0436 \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043e\u043d\u0430 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\/\u043f\u043b\u0430\u043d\u0448\u0435\u0442\u043d\u043e\/\u043e\u043d\u043b\u0430\u0439\u043d\u043e\u0432\u044b\u0439 \u0432\u0435\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u043e\u0434 \u0432\u0438\u043d\u0434\u0443 (\u0445\u043e\u0442\u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0438\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e). <\/p>\n<ul>\n<li>\u041a\u0441\u0442\u0430\u0442\u0438, \u043f\u0430\u0440\u0443 \u043d\u0435\u0434\u0435\u043b\u044c \u043d\u0430\u0437\u0430\u0434 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0431\u044b\u043b\u0430 \u0441\u0442\u0430\u0442\u044c\u044f, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b, \u0447\u0442\u043e Unity3D \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0432 \u043a\u0443\u0440\u0441\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0430 \u043a\u0430\u0444\u0435\u0434\u0440\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0438 \u043f\u0438\u0442\u0435\u0440\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0442\u043c\u0435\u0445\u0430. \u0417\u0430\u043d\u044f\u0442\u043d\u044b\u0439 \u0444\u0430\u043a\u0442, \u043d\u0435\u043c\u0430\u043b\u043e \u0433\u043e\u0432\u043e\u0440\u044f\u0449\u0438\u0439 \u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u0438 \u0434\u0432\u0438\u0436\u043a\u0430.<br \/>  \u0425\u043e\u0442\u044f \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0438\u0434\u0435\u044f \u2014 \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043e\u0431\u0441\u0443\u0434\u0438\u0442\u044c \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0434\u0430\u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 =) <\/li>\n<\/ul>\n<p>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-163071","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/163071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=163071"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/163071\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=163071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=163071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=163071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}