অ্যান্ড্রয়েডের সাথে আপনি যে সমস্যাটি চালাবেন তা হ'ল প্রতিটি ভিন্ন ডিভাইসের নিজস্ব স্ক্রিন আকার, রেজোলিউশন এবং পিক্সেল ঘনত্ব থাকে। আপনি যদি নিজের গেমটি সমস্ত ডিভাইসে অভিন্ন দেখতে চান তবে আপনি প্রচুর পরিশ্রমের জন্য রয়েছেন এবং ফলাফলগুলি নিয়ে কখনও সন্তুষ্ট হতে পারবেন না। হয় গেমটি প্রশস্ত স্ক্রিন প্রদর্শনগুলিতে প্রসারিত হবে বা অ-প্রশস্ত স্ক্রিনগুলিতে সংকুচিত হবে। আমি আপনাকে পরামর্শ দিচ্ছি সত্যিকারের গুরুত্বপূর্ণ কী তা ঠিক করুন এবং অন্য কোনও কিছুকে কিছুটা স্লাইড করুন।
আপনার গেমটি কী এবং এটি কেমন দেখাচ্ছে সম্পর্কে কোনও স্ক্রিনশট বা জ্ঞান ছাড়াই আমরা সকলেই সমাধানের অনুমান করতে পারি তবে আপনাকে নির্দিষ্ট পরামর্শ দেওয়ার জন্য আমাদের কাছে নির্দিষ্ট দিকনির্দেশ নেই।
ইউনিটিতে, আপনি বর্তমান স্ক্রিনের মাত্রাগুলি অ্যাক্সেসের সাথে অ্যাক্সেস করতে পারেন স্ক্রিন শ্রেণি: Screen.width
এবং Screen.height
(অন্যান্য বৈশিষ্ট্যগুলির মধ্যে) । এরপরে আপনি পর্দার মাত্রা এবং কী দৃশ্যমান হওয়া উচিত তার ব্যক্তিগত প্রত্যাশার উপর ভিত্তি করে আপনার বিভিন্ন আকারের স্ক্রিনগুলিতে যা দৃশ্যমান তা পরিবর্তন করতে আপনি ক্যামেরার দিক অনুপাত পরিবর্তন করতে পারেন।
যদি আপনার কোনও HUD প্রদর্শনগুলি সঠিকভাবে মাপা যায় তা নিশ্চিত করার দরকার হয় তবে আপনি এটি পরিবর্তন করে এটি করতে পারেন প্রতিটি OnGUI()
ফাংশনে স্ক্রিনের মাত্রার উপর ভিত্তি করে GUI রূপান্তর ম্যাট্রিক্স । আমি আগে এই সাধারণ স্ক্রিপ্টটি তৈরি করে এবং এমন কোনও কিছুর সাথে সংযুক্ত করে যা আমি স্কেল করতে চেয়েছি এমন জিইআইআই উপাদানগুলি সরবরাহ করে:
//GUI values in code are assigned based on an 800x600 screen
private var nativeWidth : float = 800.0f;
private var nativeHeight : float = 600.0f;
private var guiMatrix : Matrix4x4;
function Start ()
{
var scale : Vector3 = Vector3(Screen.width / nativeWidth,
Screen.height / nativeHeight,
1.0f);
guiMatrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, scale);
}
function GetGUIMatrix() : Matrix4x4
{
return guiMatrix;
}
তারপরে, আসল OnGUI()
ফাংশন (গুলি) এ, আমি এখনই ট্রান্সফর্ম ম্যাট্রিক্স সেট করেছি:
function OnGUI()
{
GUI.matrix = guiScale.GetGUIMatrix();
/* Everything Else */
}