ইউনিটি 3 ডি ইঞ্জিন ডিজাইনের পিছনে কারণগুলি (গেম অবজেক্ট / ট্রান্সফর্ম উপাদান)


14

আমি ইউনিটি 3 ডি ইঞ্জিন ডিজাইনের পিছনে যুক্তিটি বোঝার চেষ্টা করছি এবং এটি এখনও আমার মাথাটি পেতে পারে না: গেমওজেক্টের অংশ হওয়ার পরিবর্তে নাম, স্তর মুখোশ এবং এর পরিবর্তে পৃথক উপাদানগুলিতে কেন ডেটা সংরক্ষণ করা হয়? ট্যাগ? এটি অন্য উপাদানগুলির মতো যেকোনভাবে মুছে ফেলা যায় না, কোনও বিকল্প নেই এবং সুতরাং এটি অপসারণ করার প্রয়োজন নেই।


আমার কাছে এটি আর্কিটেকচারের উত্তরাধিকারের মতো শোনাচ্ছে। হতে পারে এই রূপান্তর উপাদানটি নিয়মিত, alচ্ছিক, উপাদান হিসাবে ব্যবহৃত হত, যাতে আপনার কার্টেসিয়ান স্পেসের বাইরে "অবজেক্ট" থাকতে পারে। তারপরে কিছু বাস্তবায়ন বাধা (একটি অনুকূলিতকরণ?) এর জন্য প্রয়োজনীয় যে এই উপাদানটি সর্বদা উপস্থিত ছিল এবং এটি এইভাবেই থেকে যায়। তবে এটি কেবল অনুমান করা যায়, ইউনিটির কাছ থেকে প্রকৌশলীকে সেই প্রশ্নের বাস্তব উত্তর দিতে হবে।
লরেন্ট কুইভিডাউ

উত্তর:


11

শুধু ঐক্য ডেভেলপারদের এই নকশা জন্য তাদের সত্য প্রেরণা দিতে পারেন, কিন্তু এই ভাবে এরকম সমর্থনে একটি আর্গুমেন্ট একটি আর্গুমেন্ট যে আছে যে একটি সফটওয়্যার প্রকল্পে প্রতিটি বর্গ এক এবং একমাত্র দায়িত্ব হ্যান্ডেল করা হয় । গেমঅজেক্ট হ'ল নামকরণের উপাদানগুলির সংগ্রহ এবং এর অবস্থান / ঘূর্ণন / ইত্যাদি যুক্ত করার অর্থ এটির 2 টি দায়িত্ব থাকবে। ট্রান্সফর্ম উপাদানটি অবস্থান এবং আবর্তন পরিচালনা করে এবং তাই অন্যান্য (সম্ভাব্য সম্পর্কহীন) উপাদানগুলির নামকরণ বা সংহতকরণের জন্যও দায়বদ্ধ হওয়া উচিত নয়। সুতরাং এই 2 টি ধারণাকে 2 পৃথক বস্তুতে বিদ্যমান থাকার জন্য এটি বোধগম্য।

আরও সাধারণভাবে, এই প্রশ্নটি জিজ্ঞাসা করে "X এবং Y এর মধ্যে যদি 1 থেকে 1 সম্পর্ক থাকে তবে Y কেন X এর অংশ বা বিপরীত নয়?" এবং সাধারণ উত্তরটি হ'ল 2 টি অংশ সর্বদা একত্রে একসাথে কাজ করলেও ছোট্ট স্ব-অন্তর্ভুক্ত অংশগুলিতে বিচ্ছিন্ন হয়ে গেলে সফ্টওয়্যারটি বিকাশ ও বজায় রাখা সহজ।


আমি সেটিকেও বিবেচনা করেছি কিন্তু তারা একই কারণে গেমোজেক্ট ফিল্টারিং (স্তর, ট্যাগ) একটি পৃথক উপাদানগুলিতে স্থানান্তরিত করতে পারে - এবং তবুও তারা তা করেন নি। তদ্ব্যতীত, রূপান্তর উপাদানটি হায়ারার্কি ডেটা (পিতামাতা, শিশু ইত্যাদি) ধরে সিস্টেমে খুব গভীরভাবে বেঁধে দেওয়া হয়।
সাপ 5

1
এটি যুক্তিযুক্ত হতে পারে যে স্তরগুলি এবং ট্যাগগুলি নামকরণের একটি রূপ, নামের পাশাপাশি বাঁচতে হবে এবং সিস্টেমের উপাদানগুলির সংগ্রহকে কী গঠন করে তার অভ্যন্তরীণ অংশ। প্যারেন্টিংকে ধারণ করে রূপান্তরের বিষয়ে আপনার বক্তব্য রয়েছে, তবে কেউ দাবি করেনি ityক্য ব্যবস্থাটি নিখুঁত। যদি এটি আমার সিস্টেম হয় তবে আমি রূপান্তরগুলি পৃথক করে রাখতাম এবং পিতামাতা / শিশুদের গেমওজেক্টে স্থানান্তরিত করব।
কাইলোটন

1

রূপান্তর Unক্যের একটি বাধ্যতামূলক উপাদান।

ট্রান্সফর্মটি বাধ্যতামূলক উপাদান হওয়ার কারণটি হ'ল গেম অবজেক্টগুলি কোনও দৃশ্যে অবস্থিত এবং তার জন্য সেই অবজেক্ট সম্পর্কে স্থানিক তথ্য (অবস্থান, অবস্থান এবং স্কেল) প্রয়োজন। (এই তথ্যটি সর্বদা ব্যবহৃত হয় না, তবে রূপান্তর উপাদানটি বাধ্যতামূলক রাখাই জিনিসগুলিকে কিছুটা আরও সহজ রাখে)।


1
উপাদানটি ভিত্তিক নকশা কী তা নিয়ে প্রশ্ন নেই। এটি "ট্রান্সফর্ম" কেন পাশাপাশি কোনও উপাদান নয়
বাম্মজ্যাক

1
কিন্তু রূপান্তর Unক্যের একটি উপাদান! ডকস.িউনিটি 3 ডি / ডকুমেন্টেশন / স্ক্রিপ্ট রেফারেন্স / ট্রান্সফরমhtml । রূপান্তর সম্পর্কে একমাত্র অদ্ভুত বিষয় হ'ল এটি গেমওজেক্টের জন্য বাধ্যতামূলক উপাদান।
মর্টেনোবেল

ঠিক আছে আমি অনুমান করি তাহলে প্রশ্নটি হল কেন আপনি এটি অপসারণ করতে পারবেন না? এই শব্দটির সাথে পরিচিত না হলে ওপি তার প্রশ্নটিকে "উপাদান-ভিত্তিক" ট্যাগ করত না।
বম্মজ্যাক

আপনি ঠিক বলেছেন - ধন্যবাদ প্রশ্নের উত্তরের উত্তরটি আপডেট করেছি।
মর্টেনোবেল

3
ট্রান্সফর্ম ডেটা কেন একটি পৃথক উপাদান (নাম, স্তর মাস্কস, ট্যাগগুলির মতো গেমওজেক্টের অভ্যন্তরে প্লেইন ডেটার বিপরীতে) তা প্রশ্ন। আমি আমার পোস্টের সর্বশেষ সংশোধন করে এটি আরও স্পষ্ট করার চেষ্টা করেছি।
সাপ 5

0

TransformComponentসবচেয়ে কঠিন Componentসঠিকভাবে ভিডিও গেম স্থাপত্যে ডিজাইন করতে। Componentপ্রদত্ত GameObjectঅবস্থান, আবর্তন বা স্কেল সম্পর্কে প্রায় প্রতিটি অন্যান্যকেই জানতে হবে , সুতরাং এই আন্তঃসম্পর্কিত সিস্টেমগুলির যথাযথভাবে ডিকোপল করা সহজাতভাবে কঠিন।

আর্কিটেকচারে সর্বদা ট্রেড অফস থাকবে। না থাকার TransformComponentস্থিত হওয়া (অর্থাত গতিশীল নয়), ইউনিটিতে ডেভেলপারদের এই ধৃষ্টতা অধীনে কোড লিখতে পারেন। আমি ধরে নেব যে এটি আমাদের পক্ষে খুব অসুবিধা না বাড়িয়ে জিনিসগুলি তাদের পক্ষে আরও সহজ করে তোলে। এটি একটি অবজেক্ট ওরিয়েন্টেড দৃষ্টান্ত, যেখানে সদৃশ হয় GameObjectwould extendকিছু abstract class, Transformable

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