کانال بازی سازی تلگرام
ذخیره و باز کردن مرحله در یونیتی با اسکریپت_برای حالت از اجرا یعنی محیط Editor ویرایشگر :: آموزش ساخت بازی اندروید+پکیج های تخصصی

آموزش ساخت بازی اندروید+پکیج های تخصصی

در گیم اور، همیشه حق با مشتری است و در صورت نارضایی با هم به توافق می رسیم.
--
تمام اعمالی که انجام می دهیم، حتی اگر ذره ای و مثقالی باشد، به خودمان باز می گردد و بازتابش آنها را در زندگی خواهیم دید. زلزال ۷
او کسی است که (روح) شما را در شب (به هنگام خواب) میگیرد; و از آنچه در روز کرده ‏اید، با خبر است; سپس در روز شما را (از خواب) برمیانگیزد; و (این وضع همچنان ادامه مییابد) تا سرآمد معینی فرا رسد; سپس بازگشت شما به سوی اوست; و سپس شما را از آنچه عمل میکردید، با خبر میسازد. انعام ۶۰
دلها به یاد خدا آرام میگیرد. رعد آیه ۲۷
بدانید زندگی دنیا تنها بازی و سرگرمی، و تجمل پرستی و تفاخر در میان شما و افزون طلبی در اموال و فرزندان است . حدید آیه ۲۰
آن خدایی که آدمی را از خون بسته (که تحول نطفه است) بیافرید.
بخوان و (بدان که) پروردگار تو کریم‌ترین کریمان عالم است.
آن خدایی که بشر را علم نوشتن به قلم آموخت.
به آدمی آنچه را که نمی‌دانست تعلیم داد.
راستی که انسان سرکش و مغرور می‌شود.
چون که خود را در غنا و دارایی ببیند. علق ۲- ۷
این زندگانی چند روزه دنیا افسوس و بازیچه‌ای بیش نیست، عنکبوت ۶۴
در روی زمین به تکبر راه مرو که نمی توانی زمین را بشکافی و هرگز قامتت به بلندای کوهها نمی رسد. اسراء ۳۷
در آنچه خداوند بر تو بخشیده است، سرای آخرت را بجوی و سهم خود را از دنیا فراموش مکن و همانگونه که خدا به تو نیکی کرده است نیکی کن و هرگز فساد در زمین منما که خدا مفسدان را دوست ندارد. قصص ۷۷
و هرگاه نعمت و رحمتی به انسان بچشانیم و سپس آن را از او برگیریم او مأیوس و نومید میشود و به کفران و ناسپاسی بر میخیزد. هود ۹
بندگان مرا آگاه ساز که من بسیار آمرزنده و مهربانم. حجر ۴۹
از رحمت خدا نا امید مباشید که جز کافر هیچ کس از رحمت خدا نا امید نیست. یوسف ۸۷
پس به یاد من باشید تا به یاد شما باشم. بقره ۱۵۲
زندگانی دنیا چیزی جز متاع فریبنده نیست . آل عمران ۱۸۵
از آنچه به شما روزی داده ایم پیش از آنکه روزی فرا رسد که نه معامله ای وجود دارد و نه دوستی و شفاعت ، انفاق کنید. بقره ٢۴۵
بسا چیزی را ناخوش داشته باشید که آن به سود شماست و بسا چیزی را دوست داشته باشید که به زیان شماست، و خدا میداند و شما نمیدانید. بقره ۲۱۶
ما آیات (خود) را برای شما بیان کردیم شاید اندیشه کنید...حدید ۱۷

پیوندهای روزانه
پیوندها

منبع:gameover.blog.ir

ذخیره مرحله بازی در یونیتی 5:



public static bool SaveScene(string path = "", bool saveAsCopy = false);
مثال :

به دستورات زیر نیگا کنید:
String [] path  = EditorApplication.currentScene.Split(char.Parse("/"));
path[path.Length -1] = "AutoSave_" + path[path.Length-1];    
EditorApplication.SaveScene(String.Join("/",path), true);
Debug.Log("Saved Scene");
در خط اول آرایه ای به نام path از نوع رشته ای یا String ساختیم.
با دستور EditorApplication.currentScene مسیر وجود صحنه ی فعلی رو بدست میاریم.
معمولا مسیر صحنه به صورت Assets/level1.unity برگشت داده میشه.
با متد Split اجزای این مسیر رو در رشته ذخیره و با کاراکتر / از هم مجزا کردیم.زیرا ما می خوایم اسم خالص صحنه رو برداشت کنیم.همینطور پیشوند AutoSave_ رو بهش اضافه کردیم.
دستور Length طول آرایه path رو میده.
چون شماره سلول اول از صفر 0 شروع میشه یکی از طول آرایه کم کردیم تا محتوای سلول آخر رو بدست بیاریم.سلول آخر شامل نام ذخیره شده هست.
در خط بعدی با دستور (String.Join ) یک / بهش اضافه کردیم تا در مسیر جاری ذخیره انجام بشه.

لود مرحله:
EditorApplication.OpenScene
شکل کلی:
public static bool OpenScene(string path);
نکته: حتما باید دستور:

using UnityEditor;
یا
import UnityEditor;
رو در بالا ی کد سیشارپتون بیارید.
منبع :
http://docs.unity3d.com/ScriptReference/EditorApplication.OpenScene.html


مثال:
// Simple editor window that autosaves the working scene
	// Make sure to have this window opened to be able to execute the auto save.
	
	import UnityEditor;
	
	class SimpleAutoSave extends EditorWindow {
		
		var saveTime : float = 300;
		var nextSave : float = 0;
	
		@MenuItem("Example/Simple autoSave")
		static function Init() {
			var window : SimpleAutoSave = 
				EditorWindow.GetWindowWithRect(
					SimpleAutoSave, 
					Rect(0,0,165,40));
			window.Show();
		}
		function OnGUI() {
			 EditorGUILayout.LabelField("Save Each:", saveTime + " Secs");
			 var timeToSave : int = nextSave - EditorApplication.timeSinceStartup;
			 EditorGUILayout.LabelField("Next Save:", timeToSave.ToString() + " Sec");
			 this.Repaint();
			 
			if(EditorApplication.timeSinceStartup > nextSave) {
				var path : String [] = EditorApplication.currentScene.Split(char.Parse("/"));
				path[path.Length -1] = "AutoSave_" + path[path.Length-1];	
				EditorApplication.SaveScene(String.Join("/",path), true);
				Debug.Log("Saved Scene");
				nextSave = EditorApplication.timeSinceStartup + saveTime;
			}
		}
	}

مثال:
// Simple editor Script that lets you save a scene while in play mode.
	// WARNING: All Undo posibilities are lost after saving the scene.

	@MenuItem("Example/Save Scene while on play mode")
	static function EditorPlaying() {
		if(EditorApplication.isPlaying) {
			var sceneName : String = EditorApplication.currentScene;
			var path : String [] = sceneName.Split(char.Parse("/"));
			path[path.Length -1] = "Temp_" + path[path.Length-1];
			var tempScene = String.Join("/",path);
	
			EditorApplication.SaveScene(tempScene);
			
			EditorApplication.isPaused = false;
			EditorApplication.isPlaying = false;
			
			FileUtil.DeleteFileOrDirectory(EditorApplication.currentScene);
			FileUtil.MoveFileOrDirectory(tempScene, sceneName);
			FileUtil.DeleteFileOrDirectory(tempScene);
			
			EditorApplication.OpenScene(sceneName);
		}
	}

موافقین ۰ مخالفین ۰ ۹۴/۱۰/۱۸
مدیرکل

نظرات (۳)

ببخشید این کد رو تنظیم کردم..
الان باید به چی نسبتش بدم؟

پاسخ:
نمونه گذاشتم ببینید.
باسلام چرا این اسکریپت نمیشه به چیزی نسبت داد ؟ و همچنین موقع بیلد گرفتن هم ارور میده لطفا راهنمایی کنید با تشکر
پاسخ:
سلام.
دقیق نمی دونم اما شاید اسکریپتش منسوخ شده باشه. از روش های جدید در سایت یونیتی استفاده کنید.
مثل ذخیره متغیرها و پوزیشن و غیره در فایل متنی و ... .
وقتی میخوام یه سن لود کنم  ارور playerLoop called recursively میده میتونید کمک کنید؟
پاسخ:
توی help آفلاین یونیتی بخونید:

file:///C:/Program%20Files%20%28x86%29/Unity/Editor/Data/Documentation/html/en/ScriptReference/EditorApplication.OpenScene.html

file:///C:/Program%20Files%20%28x86%29/Unity/Editor/Data/Documentation/html/en/ScriptReference/EditorApplication.OpenSceneAdditive.html

این اسکریپت ها مخصوص Editor و محیط قبل از اجرا هستند احتمالا.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی