ইউনিটে আপডেট এবং ফিক্সড আপডেটের মধ্যে পার্থক্য কী এবং আমাকে বিরক্ত করা উচিত?


10

আমাকে Update()গ্রাফিক্স এবং FixedUpdate()পদার্থবিজ্ঞানের জন্য ব্যবহার করতে বলা হয়েছিল , তবে কখনও কখনও আমার ইনপুটগুলি যখন আমি ব্যবহার করি তখন নিবন্ধভুক্ত হয় না FixedUpdate()। আমি Update()যদিও সবকিছুর জন্য ব্যবহার করি তা ঠিক কাজ করে ।

আমার কি বিরক্ত করা উচিত FixedUpdate(), বা আমি কিছু ভুল করছি?

উত্তর:


10

FixedUpdateUpdateআপনার সেটিংসের উপর নির্ভর করে দ্রুত বা ধীর চলতে পারে । এটি আপনার বোঝার উপর নির্ভর করবে (কত দ্রুত Updateচলছে) এবং আপনি যে গতি সেট করেছেন FixedUpdate(সম্পাদনা-> প্রকল্প সেটিংস-> সময় পাওয়া যায়)। আদর্শভাবে, যেহেতু Updateএকবারে ফ্রেম প্রতি একবার চালানো হয় তাই আপনি এখানে ইনপুট ক্যাপচার করতে চান। যদি আপনাকে FixedUpdateপদ্ধতিতে ইনপুটটিতে কাজ করার প্রয়োজন হয় (যেমন পদার্থবিদ্যার দেহগুলি নিয়ন্ত্রণ করে), পতাকাগুলি সেট করে Updateতারপরে সেগুলি হ্যান্ডেল করুন FixedUpdate:

bool leftMouseDown = false;

void Update()
{
    if(Input.GetMouseButtonDown(0))
        leftMouseDown = true;
}

void FixedUpdate()
{
    if(leftMouseDown )
    {
        //update physics bodies with input
        leftMouseDown = false;
    }
}

FixedUpdateপদ্ধতি থেকে পদার্থবিজ্ঞানটি নিয়ন্ত্রণ করা এখনও একটি ভাল ধারণা , যেহেতু প্রায়শই পদার্থবিজ্ঞানের প্রায়শই আপডেট করা সম্ভব না এবং একটি নির্দিষ্ট আপডেটে পদার্থবিজ্ঞানের পরিবর্তনশীল আপডেটে পদার্থবিজ্ঞানের তুলনায় ভবিষ্যদ্বাণী ( নির্ধারন ) আরও সহজ ।


আমাদের যদি একটি অক্ষর (ইনপুট.গেটঅ্যাক্সিস ("অনুভূমিক")) থেকে মূল্য পড়ার প্রয়োজন হয় তবে একটি শর্তের পরিবর্তে কী কী? যদি আপডেটটি আরও একবার কার্যকর করা হয় তবে ফিক্সডআপডেট, সেক্ষেত্রে আপনার পরামর্শ কী? আমাদের আপডেটে ব্যবহারের আগে বেশ কয়েকটি আপডেটের সময় অক্ষটির গড় মূল্য গণনা করা উচিত? (+1
বিটিডাব্লু

আমার ফিক্সডআপ্টেট কত দ্রুত তা আমি কীভাবে খুঁজে বের করব?
টোকামোচা

1
@ টোকামোচা স্থির আপডেটের হারটি সম্পাদনা> প্রকল্প সেটিংস-> সময় নির্ধারণ করা হয়েছে।
MichaelHouse

@ হাইজেনব্যাগ ব্যক্তিগতভাবে আমি কেবল সর্বশেষ মানটি ব্যবহার করব এবং দেখব যে এটি কতটা কার্যকর। যদি আমি অপ্রত্যাশিত ফলাফল পাই তবে আমি এটির প্রক্রিয়া না হওয়া পর্যন্ত অক্ষ অক্ষের একটি চলমান গড় গণনা করতে পারি FixedUpdate। এটি সেই জিনিসগুলির মধ্যে একটি যা কিছু "টেস্ট" ঠিক কী তা সঠিকভাবে খুঁজে বের করতে কিছু টেস্ট টেস্টের প্রয়োজন।
MichaelHouse

1
আমি সাম্প্রতিক পরীক্ষাগুলিতে খুঁজে পেয়েছি যে ডক্সে বোঝানো হয়েছে তার বিপরীতে, তাজা ইনপুট ফ্ল্যাগগুলি ইতিমধ্যে ফিক্সডআপটেটে পাওয়া যায় (কমপক্ষে পিসিতে)। সুতরাং আপডেটে একটি পতাকা সেট করা এবং তারপরে পরবর্তী ফিক্সডআপটেটে এটিতে অভিনয় করা (অর্থাত্ পরবর্তী ফ্রেম) এখানে প্রদর্শিত হিসাবে প্রকৃতপক্ষে ফিক্সডআপটেটে ইনপুট হ্যান্ডেল করার সাথে সম্পর্কিত খেলায় প্রকৃতপক্ষে একটি বিলম্বের ফ্রেম যুক্ত করতে পারে। একাধিক ফিক্সডআপডেটসযুক্ত ফ্রেমগুলিতে ডাবল হ্যান্ডলিং ইনপুট এড়াতে বা কোনও ফিক্সডআপডেট ছাড়াই ফ্রেমে হারিয়ে যাওয়া ইনপুটগুলি এড়াতে যদিও এর জন্য কিছু যত্নের প্রয়োজন
ডিএমগ্রিগরি

7

আপনার প্রত্যেকে কী করে তা আপনার বুঝতে হবে। Update()যতবার সম্ভব কল করা হয় (নিশ্চিত নয়, সম্ভবত এটি আবদ্ধ করা যেতে পারে), যে কোনও উপায়ে - প্রতিটি ফ্রেম। FixedUpdate()প্রতিটি ধ্রুবক সময়ের সাথে কল হয় (সুতরাং "স্থির")।

ইনপুট Update()that ুকে যায় , তার মতোই সহজ (কারণ আপনি লক্ষ্য করেছেন FixedUpdate()যে ইনপুট ইভেন্টটি নাও পারে)। গেম লজিক তবে যে কোনও একটিতে যেতে পারে। পদার্থবিজ্ঞানের ডিটারমিনিস্টিক হওয়া দরকার এবং সে কারণেই এটি হওয়া উচিত FixedUpdate()। অন্যান্য জিনিস নেই। ব্যবহারের উপর নির্ভর করে আপনাকে কোন ফাংশনটি উপযুক্ত তা সিদ্ধান্ত নিতে হবে।

অ্যালথহথ এটি বলার অপেক্ষা রাখে না যে কিছু অ্যাপ্লিকেশনগুলিতে সমস্ত গেম লজিক আপডেট রয়েছে FixedUpdate()(এমনকি বাইরেও Unity) - এটিকে "ফিক্সড স্টেপ গেম লুপ" বলা হয়। স্থির পদক্ষেপে সমস্ত আপডেট কোড থাকা আপনাকে নির্ধারণবাদ দেয় এবং আপনার অ্যাপ্লিকেশনটিকে প্রতিবার (এবং প্রতিটি ডিভাইসে) একইভাবে আচরণ করার সম্ভাবনা দেয়। পুনরায় প্রদর্শন মতো কিছু অভিনব বৈশিষ্ট্যগুলির জন্যও অনুমতি দেয়।


সুতরাং, আমি যদি সবকিছু ফিক্সডআপটেটে () রাখি তবে আমার গেমটি এখনও সমস্ত ইনপুটগুলি নিবন্ধ করবে, তাই না?
টোকামোচা

1
না, আপনি সেখানে সমস্ত গেম লজিক আপডেট রাখতে পারেন তবে ইনপুট চেকিং না করে।
এনপিএস

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