ইউনিটিতে বিশ্ব স্ক্রিপ্টগুলি কোথায় সংযুক্ত করবেন?


14

ইউনিটিতে যতটা না জানি, প্রতিটি স্ক্রিপ্ট অবশ্যই একটি বস্তুর সাথে সংযুক্ত থাকতে হবে। তবে বৈশ্বিক স্ক্রিপ্টগুলির ক্ষেত্রে কী? উদাহরণস্বরূপ একটি টেট্রিস-জাতীয় গেমটিতে আমি উপাদানটি স্প্যানার এবং মুভার স্ক্রিপ্টগুলি সংযুক্ত করব? অথবা কোনও উপাদানটির নিজের চলাচল পরিচালনা করা উচিত? এই সমস্যার জন্য কোন সেরা অনুশীলন আছে?

উত্তর:


14

টেট্রাডের উত্তরে প্রসারিত করতে, এই জাতীয় স্ক্রিপ্টটি বিবেচনা করুন:

public class GameSystem : MonoBehavior
{
  private GameSystem m_Instance;
  public GameSystem Instance { get { return m_Instance; } }

  void Awake()
  {
    m_Instance = this;
  }

  void OnDestroy()
  {
    m_Instance = null;
  }

  void Update()
  {
    // global game update logic goes here
  }

  void OnGui()
  {
    // common GUI code goes here
  }

  // etc.
}

তারপরে আপনি আপনার দৃশ্যের মূলে "গেমসিস্টেম" নামে একটি অবজেক্ট তৈরি করতে পারেন। এটির কেবলমাত্র উপাদানগুলি হ'ল বিল্ট-ইন ট্রান্সফর্ম উপাদান (তার অবস্থানটি উত্সের সাথে সেট করে, পরিচয়টির দিকে ঘোরানো এবং এটির স্কেল একটিকে; এটি গুরুত্বপূর্ণ নয়, তবে এটি ভাল অনুশীলন)। গেমসিস্টেম উপাদানটি সেই বস্তুর সাথে সংযুক্ত করে।

আপনি এখন গেমসিস্টেম.ইনস্ট্যান্স.ব্লাহ () ব্যবহার করে আপনার গ্লোবাল অবজেক্টে অ্যাক্সেস করতে পারেন। এটির ইভেন্ট হ্যান্ডলার পদ্ধতিগুলি ইউনিটি স্বয়ংক্রিয়ভাবে আহ্বান জানায় এটি মনো মনোভাব থেকে উদ্ভূত এবং একটি উপাদান হিসাবে বিদ্যমান। আপনি এটিতে এমন ক্ষেত্রগুলি যুক্ত করতে পারেন যা অন্যান্য গেমের অবজেক্টস বা উপাদানগুলিকে রেফারেন্স করে এবং ইউনিটি অবজেক্ট হায়ারার্কি ভিউতে তাদের সংযুক্ত করতে পারে।

হ্যাঁ, এটি কিছুটা "অদ্ভুত"। এটি কোনও অবজেক্ট তৈরি করতে কিছুটা নোংরামি অনুভব করতে পারে (এটির একটি রূপান্তরও রয়েছে) যা সর্বদা কেবল একটি বৈশ্বিক সিঙ্গলটন। যদিও ityক্যটির জন্য এমন একটি বিশ্বব্যাপী অবজেক্ট তৈরি করা প্রয়োজন যা একটি আপডেট বার্তা পায় এবং যদিও ডিফল্ট ইউনিটি সম্পত্তি সম্পাদকের সাথে হেরফেরযোগ্য।


এই উত্তরের জন্য ধন্যবাদ। আমি এটা অদ্ভুত বোধ সম্মত! এবং মনে হয় জিনিসগুলির এই দিকে খুব সামান্য তথ্য আছে। এই 'ম্যানেজার' টাইপ ক্লাসকে unityক্যের মধ্যে কীভাবে সবচেয়ে ভাল ব্যবহার করা যায় তার জন্য আপনি সম্ভবত কিছু পাঠ্য সামগ্রীর সুপারিশ করতে পারেন?
আপক্রিক 16

@ ইউপি দ্য ক্রিক: আমি আসলে কিছুই জানি না। আমরা বেশ কয়েকটি বছর আগে বেশিরভাগ ক্ষেত্রেই এটি সমস্ত কিছু খুঁজে পেয়েছি, তবে আমাদের বর্তমান প্রকল্পগুলি কাস্টম প্রযুক্তিতে রয়েছে তাই আমি আজকাল Unক্যের সেরা অনুশীলনগুলির সাথে বেশ পুরানো date দুঃখিত।
শিন মিডলডিচ

3

আপনি যে স্ক্রিপ্টটি রেখেছিলেন কেবল এমন কোনও ম্যানেজার অবজেক্ট তৈরি করুন। Awakeসম্ভবত আপনি যে স্ক্রিপ্টটি অর্পণ করেছেন তার জন্য একটি স্থির পরিবর্তনশীল তৈরি করুন যাতে আপনার এতে সহজেই বিশ্বব্যাপী অ্যাক্সেস থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.