Posts

Showing posts with the label Physics

Sleeping

যখন কোন একটি অবজেক্টের Rigidbody একটি নির্দিষ্ট Linear অথবা Rotational ভ্যালু থেকে কম ভ্যালু নিয়ে মুভ করতে থাকে তখন Unity3D'র বিল্টইন ফিজিক্স ইঞ্জিন ধরে নেয় যে উক্ত অবজেক্টটি'র মুভমেন্ট কিছুক্ষণ পর বন্ধ হয়ে যাবে বা থেমে যাবে। এই অবস্থায় উক্ত অবজেক্ট অন্যান্য অবজেক্টের সাথে Collide না হওয়া পর্যন্ত বা অবজেক্টের উপর কোন Force প্রয়োগ করা না করা পর্যন্ত অবজেক্টটি পুনরায় মুভ করে না এবং উক্ত অবজেক্টটি Sleep মুডে চলে যায়। কোন অবজেক্ট Sleep মুডে থাকাকালীন সময় উক্ত অবজেক্টের জন্য কোন প্রসেসর টাইম খরচ হয় না, যতক্ষণ না পর্যন্ত অবজেক্টটি Awake হয়। Sleep মুডে থাকা কোন অবজেক্ট অন্য অবজেক্টের সাথে Collide হলে বা অবজেক্টের উপর Force প্রয়োগ করা হলেই অবজেক্টটি Awake মুডে চলে আসে।

Rigidbody

দুই বা ততোধিক অবজেক্টের মধ্যে ধাক্কা/সংঘর্ষ হলে অবজেক্টগুলোর ভর ও গ্র্যাভিটি অনুসারে কে কোন দিকে কত গতি নিয়ে কত দূরত্ব সরে যাবে, কে কোন দিকে কত গতি নিয়ে ঘুরতে থাকবে, কার উপর কত ঘর্ষণ জনিত বাঁধা কাজ করবে ইত্যাদি বৈশিষ্ট্য গুলোই হচ্ছে ঐ সকল অবজেক্টের ফিজিক্যাল বিহ্যাভিয়ার বা আচরণ। Rigidbody গেম অবজেক্টের এই ফিজিক্যাল বিহ্যাভিয়ার এনাবল করে। Rigidbody যুক্ত প্রত্যেকটা গেম অবজেক্টের ফিজিক্যাল প্রোপার্টির ভ্যালু কত হবে সেটা Unity3D'র বিল্টইন ফিজিক্স ইঞ্জিন ক্যালকুলেট করে। কোন গেম অবজেক্টে যদি শুধু Rigidbody যুক্ত করা হয় তবে এটি শুধু গ্র্যাভিটির সাথে রেসপন্স করবে। অন্যান্য ফিজিক্যাল বিহ্যাভিয়ার এনাবল করার জন্য অবজেক্টের সাথে Collider কম্পোনেন্ট যুক্ত করতে হবে। Rigidbody যুক্ত গেম অবজেক্টকে Script এর মাধ্যমে এর Transform প্রোপার্টি যেমন Position, Rotation ইত্যাদি পরিবর্তন করা উচিৎ নয়। এর পরিবর্তে Force অ্যাপ্লাই করা উচিৎ এবং বাকী সব কাজগুলো ফিজিক্স ইঞ্জিন করবে। অনেক সময় Rigidbody যুক্ত গেম অবজেক্টকে Script এর মাধ্যমে কন্ট্রোল করা প্রয়োজন হয়, এক্ষেত্রে Rigidbody এর Is Kinematic অপশ...