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

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

منبع: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


باقیش به پای خودتون و بحث بیشتر بیاید توی گروه تلگرام
۲۹ تیر ۹۹ ، ۱۱:۵۹ ابراهیم قلی زاده

سلام لطفاکمک کنید تا این ارور رابرطرف کنم

Object reference not set to an instance of an object
Game
ManagerObject reference not set to an instance of an object

سلام من یه خورده گیج شدم الان کدوم بنیوسم 

پاسخ:
بیا تلگرام
@gameoverblog
لینک گروه گیم اور توشه
بپر تو

من واقعن گیچ شدم کدوم رو بنیوییم 

پاسخ:
بیا گروه تلگرام هر شب چک میشه بچه ها هستن
تو کانال می زنیم
@gameoverblog
@gameoverbloggroup

ارسال نظر

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