একটি SubspaceModifier হলো একটি Subspace কম্পোজেবল উপাদানগুলোর জন্য ব্যবহৃত কম্পোজ মডিফায়ারের অনুরূপ। একটি SubspaceModifier আপনাকে ত্রিমাত্রিক স্থানে কম্পোজেবল উপাদানগুলো পরিচালনা করতে দেয়, যা আপনাকে ত্রিমাত্রিক লেআউট নোডগুলোর অবস্থান নির্ধারণ, ঘূর্ণন এবং সেগুলোতে বিভিন্ন আচরণ যোগ করতে সাহায্য করে।
লেআউট
ডিফল্টরূপে, একটি Subspace কোনো অ্যাপ দেখার জন্য প্রস্তাবিত স্থান দ্বারা সীমাবদ্ধ থাকে। আপনার সাবস্পেস কম্পোনেন্টগুলোর লেআউট পরিমাপ করার সময় এই সীমানাগুলো ব্যবহৃত হয়, যা 2D কম্পোজ লেআউটের সীমানার মতোই।
সীমানা পূরণ করুন
fillMaxSize , fillMaxWidth , fillMaxHeight এবং fillMaxDepth মডিফায়ারগুলো কনটেন্টকে তার প্যারেন্টের সীমানার মধ্যে (আংশিকভাবে) পূর্ণ করে। ফিল মডিফায়ার ব্যবহার করে আপনার অ্যাপ এমনভাবে কনটেন্ট লেআউট করতে পারে যা XR ডিভাইসের ডিসপ্লে বৈশিষ্ট্যের ওপর নির্ভরশীল নয়।
আকার এবং প্রয়োজনীয় মাপ নির্ধারণ করুন
size , width , height , এবং depth মডিফায়ারগুলো কন্টেন্টের পছন্দের আকার নির্ধারণ করে। কন্টেন্টের সঠিক আকার নির্ধারণ করতে requiredSize , requiredWidth , requiredHeight , এবং requiredDepth ব্যবহার করুন। এই এককগুলো অবশ্যই dp তে উল্লেখ করতে হবে; মিটার থেকে dp-তে রূপান্তর করতে Meter.toDp() ব্যবহার করুন।
অবস্থান রচনাযোগ্য
offset
offset মডিফায়ারটি কম্পোজেবলটিকে ত্রিমাত্রিক স্থানে x , y , এবং z অক্ষ বরাবর সরায়। এই এককগুলো অবশ্যই dp তে নির্দিষ্ট করতে হবে; মিটার থেকে dp-তে রূপান্তর করতে Meter.toDp() ব্যবহার করুন।
rotate
rotate মডিফায়ারটি প্রদত্ত কম্পোজেবলটিকে স্পেসে ঘোরায়। আপনি বিভিন্ন উপায়ে ঘূর্ণনের দিক এবং পরিমাণ নির্দিষ্ট করতে পারেন:
- পিচ, ইয়াও এবং রোল ব্যবহার করে, যা যথাক্রমে
x,yএবংzঅক্ষের সাপেক্ষে ঘূর্ণন নির্দিষ্ট করে, - একটি
axisAngleব্যবহার করে, যা হলো ঘূর্ণন অক্ষকে প্রতিনিধিত্বকারী একটিVector3, এবং এর মাধ্যমে অক্ষটিকে কত ডিগ্রিতে ঘোরানো হবে তা নির্দেশ করা হয়, - ঘূর্ণন উপস্থাপনকারী একটি
Quaternionব্যবহার করে।
rotateToLookAtUser
rotateToLookAtUser মডিফায়ারটি কন্টেন্টকে ক্রমাগত ঘোরাতে থাকে যাতে এটি সব সময় ব্যবহারকারীর দিকে মুখ করে থাকে। আপনি এই মডিফায়ারটি ব্যবহার করে একটি "বিলবোর্ড" এফেক্টও তৈরি করতে পারেন, যেখানে কন্টেন্টটি Y-অক্ষ বরাবর ব্যবহারকারীর দিকে ঘুরে যায় এবং একই সাথে খাড়া ও অভিকর্ষের সাথে সারিবদ্ধ থাকে। এটি করার জন্য, rotateToLookAtUser মডিফায়ারটির সাথে gravityAligned মডিফায়ারটি যুক্ত করুন।
এই মডিফায়ারটির জন্য আপনার অ্যাপকে বর্তমান সেশনের অবজেক্টটি DeviceTrackingMode.LAST_KNOWN দিয়ে কনফিগার করতে হবে।
কম্পোজেবলগুলির চেহারা পরিবর্তন করুন
alpha
alpha মডিফায়ার কোনো এলিমেন্ট এবং তার চাইল্ড এলিমেন্টগুলোর অস্বচ্ছতা নির্ধারণ করে, যেখানে 0f সম্পূর্ণ স্বচ্ছ এবং 1.0f সম্পূর্ণ অস্বচ্ছ বোঝায়।
scale
scale মডিফায়ারটি কম্পোজেবলের বিষয়বস্তুকে অনুভূমিক, উল্লম্ব এবং গভীরতা অক্ষ বরাবর স্কেল করে।
পরীক্ষা এবং প্রবেশগম্যতা
semantics
semantics মডিফায়ার লেআউট নোডে সিম্যান্টিকস যোগ করে, যা টেস্টিং এবং অ্যাক্সেসিবিলিটির জন্য ব্যবহৃত হয়। আরও জানতে Jetpack Compose-এ সিম্যান্টিকস এবং SemanticsModifier দেখুন।
testTag
testTag মডিফায়ারটি হলো SemanticsPropertyReceiver.testTag এর একটি সংক্ষিপ্ত রূপ, যা টেস্ট ফ্রেমওয়ার্কগুলোকে টেস্টের মধ্যে এলিমেন্টটি খুঁজে পেতে সাহায্য করে।