«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
ذخیره و باز کردن مرحله در یونیتی با اسکریپت_برای حالت از اجرا یعنی محیط Editor ویرایشگر :: گیم اور

گیم اور


خصوصی نظر نذارید نمی تونیم جواب بدیم.

عضو کانال تلگرام ما بشید توش گروه هم می گیم

لینک کانال خصوصی گیم اور :

https://t.me/gameoverblog

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

منبع: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 و محیط قبل از اجرا هستند احتمالا.
سلام 
چه جوری میشه که مراحل و به صورت انلاین دانلود کرد 
به عنوان مثال شما یه بازی داری تو اون بازی تا مرحله 3 ازاد هست و مرحله 4 و باید انلاین دانلود کنی 
طریقه درست کردن این مراحل چه جوریه 
ممنون میشم پاسخ بدید
پاسخ:
سلام. سین رو میشه سیو کرد و فایلش رو اپلود و با کلاس www دانلود کرد.
به خاطر دردسرش وقت توضیح بیشتر نیست.ولی آموزش دانلود یک فایل رو قبلا گفتیم شاید بدردتون بخوره.
مثلا برای دانلود یک عکس یا فایل می تونید از این آموزش الگو بگیرید:
http://gameover.blog.ir/1396/01/29/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DB%8C%DA%A9-%D8%B9%DA%A9%D8%B3-%D9%88-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%B1%D9%88%DB%8C-ui-image-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%B9%DA%A9%D8%B3-%D8%AA%D9%88%D8%B3%D8%B7-%DB%8C%D9%88%D9%86%D8%AA%DB%8C%DB%8C-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C


باقیش به پای خودتون و بحث بیشتر بیاید توی گروه تلگرام

ارسال نظر

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