সমাধান করা হয়েছে: Vector3.signedangle একক কোণ দেখায় না

সর্বশেষ আপডেট: 09/11/2023
লেখক: C SourceTrail

ভেক্টর প্রোগ্রামিং এর একটি শক্তিশালী হাতিয়ার, বিশেষ করে গেম ডেভেলপমেন্টে উপযোগী। তারা দিকনির্দেশ, বেগ এবং স্পষ্টতই, 3D স্পেসে অবস্থান উপস্থাপন করতে পারে। এই ভেক্টরগুলির সাথে কাজ করার সময়, আমাদের মাঝে মাঝে দুটি ভেক্টরের মধ্যে কোণ গণনা করতে হবে। এখানে Vector3.SignedAngle of Unity পদ্ধতি কার্যকর হয়।

ইউনিটির ভেক্টর3. স্বাক্ষরিত কোণ পদ্ধতি দিকনির্দেশের সাথে দুটি ভেক্টরের মধ্যে ডিগ্রি কোণ গণনা করে। এর মান -180 থেকে 180 পর্যন্ত, এইভাবে আমাদের দিকনির্দেশনাও দেয়। দুর্ভাগ্যবশত, কিছু ব্যবহারকারী এতে স্বাক্ষরিত কোণ সঠিকভাবে প্রদর্শন না করে সমস্যা রিপোর্ট করেছেন। আসুন এই সাধারণ সমস্যার একটি কার্যকর সমাধান খুঁজে বের করা যাক।

Vector3.SignedAngle এর সঠিক ব্যবহার

এটা কিভাবে বুঝতে গুরুত্বপূর্ণ ভেক্টর3. স্বাক্ষরিত কোণ সমস্যা সমাধানে কাজ করে। এই পদ্ধতিতে তিনটি আর্গুমেন্ট লাগে, যথা, থেকে, এবং অক্ষ। "থেকে" এবং "থেকে" হল দুটি ভেক্টর যার মধ্যে আমরা কোণ গণনা করছি, যখন "অক্ষ" হল ভেক্টর যার চারপাশে আমরা কোণটি পরিমাপ করছি।

ভেক্টর3 থেকে = নতুন ভেক্টর3(1, 0, 0);
ভেক্টর 3 থেকে = নতুন ভেক্টর3(0, 1, 0);
ভেক্টর3 অক্ষ = নতুন ভেক্টর3(0, 0, -1);
float angle = Vector3.SignedAngle(from, to, axis);

উপরের কোডে, দুটি ভেক্টর সমন্বিত সমতলের সাথে অক্ষটি লম্ব কিনা তা নিশ্চিত করা গুরুত্বপূর্ণ। এর কারণ হল, একটি 3D স্পেসে, ঘূর্ণন অক্ষের উপর ভিত্তি করে কোণ ভিন্ন হতে পারে।

Vector3.SignedAngle স্বাক্ষরিত কোণ দেখাচ্ছে না – সমাধান

সমস্যা দেখা দেয় যখন ভেক্টরগুলো আমাদের প্রত্যাশা থেকে ভিন্ন সমতলে থাকে। অক্ষের দিকনির্দেশ বন্ধ থাকলে, এটি ধনাত্মক মান প্রদান করতে পারে যখন এটি ঋণাত্মক এবং তদ্বিপরীত হবে। স্বাক্ষরিত কোণ খুঁজে বের করার জন্য এখানে একটি বিকল্প পদ্ধতি রয়েছে যা আপনার ভেক্টর যে প্লেনে থাকে তা নির্বিশেষে কাজ করে:

ভেক্টর3 v1 = নতুন ভেক্টর3(1, 0, 0);
ভেক্টর3 v2 = নতুন ভেক্টর3(0, 1, 0);
Vector3 ক্রসপ্রডাক্ট = Vector3.Cross(v1, v2);
float dotProduct = Vector3.Dot(v1, v2);
float signedAngle = Mathf.Atan2(crossProduct.magnitude, dotProduct) * Mathf.Rad2Deg;

যদি (crossProduct.z <0) স্বাক্ষরিত কোণ *= -1; [/code] এই স্বাক্ষরিত কোণ গণনা ব্যবহার করে ডট এবং ক্রস পণ্য দুটি ভেক্টরের মধ্যে যা যথাক্রমে তাদের মধ্যবর্তী কোণের দিক এবং মাত্রা প্রদান করে। অবশেষে, যদি ক্রস গুণফলের z উপাদান ঋণাত্মক হয়, তাহলে ঋণাত্মক কোণ পেতে কোণটিকে -1 দ্বারা গুণ করুন।

মনে রাখবেন যে 'ডট' এবং 'ক্রস প্রোডাক্ট' হল সমাধানের পিছনে মৌলিক ধারণা। ডট পণ্য কার্যকরভাবে কোণের কোসাইন পায়, যখন ক্রস পণ্য সাইন পায়। এই অপারেন্ডগুলি আমাদেরকে 3D স্পেসে ভেক্টরের একটি সম্পূর্ণ উপস্থাপনা দেয়, যা স্বাক্ষরিত কোণ পাওয়ার জন্য একটি শক্তিশালী সমাধানের সুবিধা দেয়।

এই পদ্ধতিগুলি প্রয়োগ করা হলে বুদ্ধিমত্তার সাথে Vector3 এর সমস্যাটি সমাধান করা হবে। সাইনড অ্যাঙ্গেল ইউনিটিতে স্বাক্ষরিত কোণ দেখাচ্ছে না এবং আপনি আপনার গেম ডেভেলপমেন্ট প্রকল্পগুলি নিয়ে এগিয়ে যেতে পারেন। মনে রাখবেন যে এই মৌলিক ভেক্টর ক্রিয়াকলাপগুলি বোঝা 3D গেম বিকাশের সাথে জড়িত অন্যান্য বিভিন্ন কাজের দরজা খুলে দেবে। শুভ কোডিং!

সম্পর্কিত পোস্ট:

মতামত দিন