ইউনিটি UI বর্গক্ষেত্র যা প্রস্থ বা উচ্চতা পূরণ করে


11

আমি এই প্রয়োজনীয়তা সহ একটি বোর্ড তৈরি করার চেষ্টা করছি:

  • এটি বর্গক্ষেত্র হতে হবে।
  • এটি উপলব্ধ প্রস্থ বা উচ্চতা মাপসই করা হবে।
  • এটি ক্যানভাসে কেন্দ্রীভূত হবে।
  • এটি প্রয়োজন হিসাবে অতিরিক্ত অতিরিক্ত মধ্যবর্তী ক্যানভাসগুলিতে আবৃত থাকতে পারে।

আমি অ্যাঙ্কারদের সাথে খেলছি তবে আমি এটি করার কোনও মিল খুঁজে পাচ্ছি না। আমি যে সমাধান করতে পারি তার মধ্যে কেবলমাত্র সমাধানটি হ'ল এক ধরণের ধারকটির "অনারাইজাইজ" স্ক্রিপ্ট করা এবং বোর্ডের আকারটি প্রোগ্রামিক্যালি সেট করা।

এটি আসল বিন্যাস। (1) বোর্ডক্যানভাস। (2) বোর্ড হয়।

মূল লেআউট

আমি চাই যে স্ক্রিনটি লম্বা হয়ে উঠলে বর্গক্ষেত্রটি বাড়বে, তবে এখনও বর্গক্ষেত্র:

এখানে চিত্র বর্ণনা লিখুন

বা হ্রাস:

এখানে চিত্র বর্ণনা লিখুন

তবে, পূর্ববর্তী উদাহরণগুলি উপরের এবং নীচের প্রান্তগুলিতে ছড়িয়ে পড়েছে, তবে আমি এটিও চাই যে উল্লম্ব স্থানটি যদি প্রস্থের প্রস্থের চেয়ে লম্বা হয় তবে বাম এবং ডান সীমানার উপর নির্ভর করে বর্গক্ষেত্রটি তার আকারকে সীমাবদ্ধ করে:

এখানে চিত্র বর্ণনা লিখুন

প্রশ্ন 1: অ্যাঙ্করগুলি / পিভটগুলি দিয়ে এটি করার কোনও উপায় আছে? বোর্ডক্যানভাস এবং বোর্ড নিজেই যদি কাজ করে তবে তার মধ্যে মধ্যবর্তী ক্যানভ্যাসগুলি তৈরি করা আমার পক্ষে ঠিক।

প্রশ্ন 2: যদি তাই হয়, তবে আমি কোথায় অ্যাঙ্কারদের অবস্থান করব? আমার কি মধ্যবর্তী বস্তুগুলির দরকার?

Q3: যদি না হয়, সমাধান স্ক্রিপ্টিং হয়? হ্যান্ডল করার জন্য ক্যানভাসে কোনও অনারাইজ আছে? আমি তালিকার কোনও আকার পরিবর্তনকারী ইভেন্ট দেখতে পাচ্ছি না তবে এটি কোথায় সন্ধান করতে হবে তা আমি জানি না। আমি অনুভব করি যে প্রতিটি ফ্রেমে এটি পরীক্ষা করা কিছুটা ওভারকিল বলে মনে হচ্ছে, ইভেন্ট চালিত আরও ভাল বলে মনে হচ্ছে।

ধন্যবাদ!

উত্তর:


13

অবশেষে আমি এটি করার একটি উপায় খুঁজে পেয়েছি (v5.0.0 এ পরীক্ষিত), যাতে:

  • ওরিয়েন্টেশন চেক করার জন্য কোড বা শর্তসাপতির প্রয়োজন নেই।
  • আইশের সাহায্যে হ্যাক করে না এবং এর জন্য কোনও রেফারেন্স রেজোলিউশনের প্রয়োজন নেই।

ইউআই ভিডিও টিউটোরিয়ালে, একটি বড় অংশ অনুপস্থিত রয়েছে, যদিও পাঠ্য-ডকুমেন্টেশনে ভালভাবে নথিভুক্ত করা হয়েছে: "অটো-লেআউটগুলি" সিস্টেম।

অটো-লেআউটগুলি হ'ল "লেআউটগুলি" এবং "লেআউট কন্ট্রোলারগুলি" দিয়ে তৈরি প্রক্রিয়া। লেআউট কন্ট্রোলার এমন উপাদান যা কোনওরকম ইউআই গেম অবজেক্টের সাথে সংযুক্ত করতে পারে। নিয়ামকরা Rect Transformবুদ্ধিমানভাবে এর আকার পরিবর্তন করতে পারেন ।

কিছু নিয়ামকরা সেই উপাদানটির পুনরায় আকার দিতে পারে যেখানে উপাদানটি প্রয়োগ করা হয়, অন্য কন্ট্রোলাররা সেই অবজেক্টের শিশুদের আকার পরিবর্তন করতে পারে।

সেখানে কয়েকটি বিল্ট-ইন কন্ট্রোলার রয়েছে। সেগুলির একটি Aspect Ratio Fitter

প্রথমত, আমি আমার Boardপ্যানেলটি নির্বাচন করি এবং আমি একটি নতুন Aspect Ratio Fitterউপাদান সংযুক্ত করি :

এখানে চিত্র বর্ণনা লিখুন

Aspect Ratio Fitter"বজায় রাখা" বস্তুর চেয়েছিলেন অনুপাত লক্ষ্য রাখি বলে মনে হয়। এটি করার জন্য, হয় বস্তুটিকে শিশু অবজেক্টের চারপাশে "মোড়ানো" হিসাবে সেট করা যেতে পারে (দিক অনুপাতটি রক্ষণাবেক্ষণ করার সময়), অথবা হয় এটির ধারকটি প্রসারিত এবং ফিট করার জন্য সেট করা যেতে পারে (দিক অনুপাত বজায় রেখে)।

আমি তারপরে Fit In Parentবিকল্পটি নির্বাচন করি এবং আমি উল্লেখ করি যে আমি পছন্দসই অনুপাতের অনুপাত 1: এ সেট করে একটি নিখুঁত বর্গ চাই:

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

আমি যা চেয়েছি তার চেয়ে খুব অনুরূপ লেআউটে এই ফলন হয়েছে, তবে বোর্ডকে তার মাত্রাগুলি আমাকে জানাতে হয়নি। তবে এখনও, এটি জানে এটি অবশ্যই বর্গক্ষেত্র হতে হবে, যেমন চিত্রিত হয়েছে:

এখানে চিত্র বর্ণনা লিখুন

যদি আমি উল্লম্বভাবে সঙ্কুচিত বা প্রসারিত করি তবে দিক অনুপাত বজায় রেখে স্কোয়ারটি পিতামাতার অনুসরণ করে:

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন

ম্যাজিকালি, যখন প্রস্থটি হ্রাস করে পরিবর্তনটি ডন করা হয়, তখন সংযুক্ত করার মতো কোনও স্ক্রিপ্ট নেই এবং কোনও সম্পত্তি পরিবর্তনের মতো নেই, কারণ "অ্যাস্পেক্ট রেসিও ফিটার" স্বয়ংক্রিয়ভাবে আমাদের জন্য এটি করে:

এখানে চিত্র বর্ণনা লিখুন

অবশেষে, আমি মার্জিন একটি বিট আছে চেয়েছিলেন, আমি শুধু একটি ধারক RECT রুপান্তর যে স্পেসার হিসাবে কাজ করে এবং সরানো স্থান Boardথেকে BoardCanvasমধ্যে MarginCanvas:

এখানে চিত্র বর্ণনা লিখুন


আহ, দুর্দান্ত, এটিকে দুর্দান্ত সমাধানের মতো দেখাচ্ছে। খুশি হয়েছিলে, ভাগ করে নেওয়ার জন্য ধন্যবাদ!
ক্রিস ম্যাকফারল্যান্ড

3

এটি সম্ভব, তবে সম্ভবত স্ক্রিনটি আড়াআড়ি বা প্রতিকৃতি এবং কোনও দুটি মান পরিবর্তন করার জন্য কোড বা দুটি কোডের একটি ছোট লাইন রয়েছে।

ক্যানভাসে, আপনার ক্যানভাস স্কেলারের "ইউআই স্কেল মোড "টিকে" স্ক্রিন আকারের সাথে স্কেল "করা এবং" স্ক্রিন ম্যাচ মোড "টিকে "ম্যাথ প্রস্থ বা উচ্চতা" করা দরকার:

এখানে চিত্র বর্ণনা লিখুন

800x600 এর ডিফল্ট রেফারেন্স রেজোলিউশনটি ধরে নেওয়া হয়েছে এবং ধরে নেওয়া হচ্ছে যে স্ক্রিনের ভিউপোর্টটি ল্যান্ডস্কেপ (উদাহরণস্বরূপ এর Screen.widthচেয়ে বড় Screen.height), ম্যাচ স্লাইডারটিকে উচ্চতার দিকে সমস্তভাবে সেট করা দরকার 1

এরপরে আপনি মাঝারি / কেন্দ্রের অ্যাঙ্কর প্রিসেটটি ব্যবহার করে ক্যানভাসে একটি চিত্র চান। আপনি আপনার ক্যানভাস স্কেলারের রেফারেন্স রেজোলিউশনের ওয়াই মানটির সাথে মেলে চিত্রের প্রস্থ এবং উচ্চতাও চান।

এখানে চিত্র বর্ণনা লিখুন

তারপরে আপনি ক্যামেরার ভিউপোর্টটিকে আকার পরিবর্তন করতে পারেন এবং ভিউপোর্টের উচ্চতার সাথে মেলে ধরে উচ্চতা প্রসারিত করার সময় চিত্রটি তার আকার ধরে রেখেছে:

এখানে চিত্র বর্ণনা লিখুন


যদি স্ক্রিনের প্রতিকৃতি চিত্রিত হয় - এবং এটি সম্ভবত আপনার চেক করার জন্য কোড প্রয়োজন হবে এবং / অথবা প্রয়োজন অনুসারে পরিবর্তন করতে হবে - আপনাকে স্কেলারের ম্যাচের মান হতে হবে 0এবং রেফারেন্স রেজোলিউশনের সাথে মেলে আপনার চিত্রটির উচ্চতা এবং প্রস্থ পরিবর্তন করতে হবে এক্স মান। (নীচের ছবিগুলিতে চিত্রের প্রস্থ এবং উচ্চতা উভয়ই 800)


যদি আপনি কোনও ছোট চিত্রের অভ্যন্তরে ফিট করার চেষ্টা করছেন তবে আপনি রেফারেন্স রেজোলিউশনের এক্স বা ওয়াই মান (ল্যান্ডস্কেপ বা প্রতিকৃতির উপর নির্ভর করে) এর বিস্তৃততা এবং উচ্চতা সামঞ্জস্য করে চিত্রটিকে "স্কেল" করতে পারেন। সুতরাং উদাহরণস্বরূপ, আমি একটি নীল বর্গ তৈরি করেছি যা রেফারেন্স রেজোলিউশনের X মানটির অর্ধেক ব্যবহার করে (যেহেতু ভিউপোর্টটি প্রতিকৃতি হিসাবে চিত্রিত হয়), এবং এটি স্কেল করে খুব সুন্দরভাবে সঙ্কুচিত হয়:

এখানে চিত্র বর্ণনা লিখুন

এবং আরও, আপনি যদি একটি চেকারবোর্ড বা কিছু চান, তবে প্রতিটি চিত্রের এক্স এবং ওয়াই অবস্থান এবং উচ্চতা এবং প্রস্থ আপনি যা খুশি তা করতে ক্যানভাস স্কেলারের রেজোলিউশনের শতাংশের উপর ভিত্তি করে তৈরি করতে পারেন:

এখানে চিত্র বর্ণনা লিখুন


1
আপনার অত্যন্ত বিস্তারিত উত্তরের জন্য ক্রিসকে ধন্যবাদ। অবশেষে আমি একটি সমাধান পেয়েছি যা অরিয়েন্টেশন পরীক্ষা করার জন্য কোডের কোনও লাইনের প্রয়োজন নেই, এবং স্কেলগুলি দিয়ে হ্যাক করে না এবং কোনও রেফারেন্স রেজোলিউশন ব্যবহার করে না। আমি আমার নিজের উত্তর পোস্ট করতে যাচ্ছি তবে আমি আপনার প্রচেষ্টা এবং দৃষ্টান্তকে ধন্যবাদ না দিয়ে পাশ দিয়ে যেতে চাই না।
জাভি মন্টেরো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.