ইউনিটির স্প্ল্যাশ পর্দা উঠার সময় আমি কী পটভূমিতে ডেটা লোড করতে পারি? যদি তাই হয়, কিভাবে?
আমি স্প্ল্যাশ স্ক্রিন চলাকালীন কোড চালানোর চেষ্টা করছি, কেবল সম্পদ লোড করব না।
আমি গুগল বা ityক্য ডকুমেন্টেশনে এ সম্পর্কিত কোনও তথ্য খুঁজে পাচ্ছি না ।
ইউনিটির স্প্ল্যাশ পর্দা উঠার সময় আমি কী পটভূমিতে ডেটা লোড করতে পারি? যদি তাই হয়, কিভাবে?
আমি স্প্ল্যাশ স্ক্রিন চলাকালীন কোড চালানোর চেষ্টা করছি, কেবল সম্পদ লোড করব না।
আমি গুগল বা ityক্য ডকুমেন্টেশনে এ সম্পর্কিত কোনও তথ্য খুঁজে পাচ্ছি না ।
উত্তর:
আমি সবেমাত্র কিছু পরীক্ষা করেছি এবং আমি দেখতে পেয়েছি যে স্প্ল্যাশ স্ক্রিনটি এখনও প্রদর্শিত থাকাকালীন প্রথম দৃশ্যে অবজেক্টগুলির জন্য কনস্ট্রাক্টরটি আসলে কল হয়ে যায়।
স্থিতিশীল স্টপওয়াচ দিয়ে আমি পরিমাপ করা কিছু সময় এখানে রইল:
Constructed 0 s
Awake 2.118 s
OnEnable 2.12 s
Start 2.744 s
First Update 2.919 s
সুতরাং, দেখে মনে হচ্ছে আমরা স্প্ল্যাশ স্ক্রিনটি শেষ হওয়ার প্রায় 3 সেকেন্ড আগে স্ক্রিপ্টটি চালাতে পারি (ডিফল্ট সেটিংস সহ) এটি নির্মাণকারীর কাছ থেকে গুলি করে ফেলে। আপনি সেখান থেকে আপনার লোডিং কোডটি (সম্ভবত তার নিজস্ব থ্রেডে) ট্রিগার করার চেষ্টা করতে পারেন।
কেবল সাবধান থাকুন যে সম্ভবত এটি লোডিং থ্রেড থেকে ডাকা হচ্ছে, সুতরাং যেহেতু আমরা মূল থ্রেডে নেই আমরা এখানে যা করার অনুমতি দিয়েছি তার সাথে আমরা আরও কিছুটা সীমাবদ্ধ থাকব। যদি লোডিং থ্রেডে সমর্থিত নয় এমন কোনও নির্দিষ্ট জিনিস আপনি করতে চেষ্টা করছেন তবে আপনার আবেদনের বিবরণ সহ একটি নতুন প্রশ্ন পোস্ট করার বিষয়টি বিবেচনা করুন এবং আমরা সেই মামলার জন্য কোনও সমাধান খুঁজে বের করার চেষ্টা করতে পারি।
Update()
নির্মাণকারীর বরখাস্ত হওয়ার ২.৯ সেকেন্ড পরে প্রথম টিক পেয়েছে ick বর্তমান উপকরণের সাথে আমি এটি বুঝতে পারি about
আপনার সেরা বাজিটি আপনার নিজের লোডিং স্ক্রিন তৈরি করা এবং এটি প্রাথমিক দৃশ্য হিসাবে সেট করা। তারপরে, সেই সাধারণ দৃশ্যটি থেকে, দৃশ্যের ম্যানেজারটি পরবর্তী দৃশ্যেরটিকে পটভূমিতে সংযুক্তিকরূপে লোড করতে ব্যবহার করুন ।
আমি এটি নিশ্চিত করার জন্য তথ্য খুঁজে পাচ্ছি না, তবে আমার পর্যবেক্ষণ থেকে মনে হচ্ছে স্প্ল্যাশ স্ক্রিনটি প্রদর্শিত হওয়ার সময় ityক্য আপনার প্রাথমিক দৃশ্যটি লোড করছে।
কিছু প্ল্যাটফর্মে, স্প্ল্যাশ স্ক্রিনটি চলে যাওয়ার আগে গেমটি চলতে শুরু করে, যদি লোডিং দ্রুত হয়।
এগুলি যে কোনও সময়ে, যে কোনও প্ল্যাটফর্মে, যে কোনও সংস্করণ আপডেটে পরিবর্তন হতে পারে। এটি সামঞ্জস্য থাকবে এমন কোনও গ্যারান্টি নেই, সুতরাং আপনার নিজের লোডিং স্ক্রিনটি ব্যবহার করা ভাল।
সংক্ষিপ্ত উত্তর হ'ল না , আপনি এটি করতে পারবেন না।
উপরের উভয় উত্তর দৃশ্য পরিচালনার ক্ষেত্রে সঠিক। আপনি দৃশ্যটি লোড করতে দৃশ্যের পরিচালক ব্যবহার করতে পারেন এবং এটি async হওয়ায় আপনি সমান্তরালভাবে অন্যান্য কোড চালাতে পারেন।
এ SceneManager.LoadScene আরো বিস্তারিত জানার জন্য ডকুমেন্টেশন।
গেম শুরুর পরে আপনার কোডটি যত তাড়াতাড়ি চালানো যায় আপনি এটি সবচেয়ে কাছের এটি প্রথম পদক্ষেপ থেকে ছোট পায়ের ছাপ দিয়ে চালাচ্ছেন। একে স্প্ল্যাশ দৃশ্য বলি । এটি কেবলমাত্র আপনার স্প্ল্যাশ চিত্র এবং নিয়ামককে প্রয়োজনীয় কোড চালাচ্ছে এবং অন্য একটি দৃশ্য লোড করবে।
যেহেতু এটির ছোট পায়ের ছাপ রয়েছে, এটি খুব দ্রুত লোড হবে এবং এভাবে আপনার কোডটি প্রায় তাত্ক্ষণিকভাবে চলমান হবে। তারপরে আপনার যা করতে হবে তা করতে পারেন এবং তারপরে অন্যান্য দৃশ্য লোড করতে পারেন ।
আরেকটি জিনিস যা আপনি চেষ্টা করতে পারেন তা হ'ল "স্প্ল্যাশ স্ক্রিন" অপসারণ করে সেখানে যে চিত্রগুলি প্রদর্শন করতে চান তা সরিয়ে দিন। এটি কিছুটা দ্রুত হবে কারণ এটি প্রাথমিকভাবে লোড হবে না।
সুতরাং প্রবাহটি এরকম কিছু হবে:
ছোট দৃশ্যের দ্রুততর এটি লোড হবে। আপনি বোঝা স্প্ল্যাশ স্ক্রিনে কোনও বস্তুর সাথে সংযুক্ত স্প্ল্যাশ নিয়ন্ত্রকের মতো কিছু ব্যবহার করতে পারেন ।
using UnityEngine;
using UnityEngine.SceneManagement;
public class SplashController: MonoBehaviour
{
void Start()
{
// RunSomeSyncMethod();
SceneManager.LoadScene("OtherSceneName", LoadSceneMode.Additive);
}
}