দৃশ্য পর্দায় যান এবং আপনার প্লেয়ার নির্বাচন করুন। অ্যানিমেশন উইন্ডো খুলুন। অ্যানিমেশন শুরু করার জন্য, আপনার একটি অ্যানিমেটর এবং একটি অ্যানিমেশন ক্লিপ প্রয়োজন।
প্লেয়ার নির্বাচন করুন এবং এনিমেশনে যান -> উইন্ডোর নিচে অ্যানিমেশন
আপনার একটি অ্যানিমেটর এবং একটি অ্যানিমেশন ক্লিপ দরকার।
তৈরি করুন, অ্যানিমেশনের জন্য একটি ফোল্ডার তৈরি করুন এবং Player_Idle এর অধীনে অ্যানিমেশন সংরক্ষণ করুন।
টাইমলাইন প্রদর্শিত হয় যেখানে অ্যানিমেশন স্প্রাইটগুলি অবস্থান করা যায়।
অ্যানিমেশন স্প্রিটগুলিকে অ্যানিমেশন উইন্ডোতে টেনে আনুন। ফ্রেম যোগ করা হয়:
এখন চরিত্রটি খুব দ্রুত অ্যানিমেটেড হবে। প্রতি সেকেন্ডে চালানো ছবিগুলিকে সামঞ্জস্য করা প্রয়োজন।
নমুনা হার প্রদর্শন করতে, অ্যানিমেশন উইন্ডো থেকে সেটিংস নির্বাচন করুন এবং "নমুনা হার দেখান" নির্বাচন করুন
এটি এখন 60 -এ।
এটি 12 তে পরিবর্তন করুন।
তারপর অ্যানিমেশন আর দ্রুত চালায় না।
ছবিগুলি ড্র্যাগ অ্যান্ড ড্রপ ব্যবহার করে টাইমলাইনে সরানো যেতে পারে অথবা ডিলিট ব্যবহার করে সরানো যেতে পারে।
পুরো জিনিসটি অন্যান্য অ্যানিমেশনের জন্যও কাজ করে, যেমন চরিত্র থেকে হাঁটা।
এটি করার জন্য, নির্বাচন করুন: নতুন ক্লিপ তৈরি করুন
ক্রাউচিং এবং জাম্পিংয়ের জন্য পুনরাবৃত্তি করুন।
জাম্পিং করার সময় যদি আপনার এত স্প্রাইট না থাকে এবং উদাহরণস্বরূপ, শুধুমাত্র 2 টি স্প্রাইট থাকে, তাহলে আপনি নমুনার মান 2 সেট করতে পারেন।
অ্যানিমেশন ফোল্ডারে, অ্যানিমেশন কন্ট্রোলারের অ্যানিমেশনের চেয়ে আলাদা আইকন ডিসপ্লে রয়েছে:
কখন কোন অ্যানিমেশন চালানো হয় তা নির্ধারণ করে।
অ্যানিমেটরটি ডাবল ক্লিকের সাথে খোলে:
সেখানে এটি নির্ধারণ করা হয় কোন অ্যানিমেশন চালানো হয়। একটি অ্যানিমেশনকে টেনে এনে সরাসরি প্রকল্প থেকে অ্যানিমেটরে ফেলে দেওয়া যেতে পারে।
Player_Idle ist mit einem orangen Pfeil verbunden und orange markiert, weil es die Ausgangsanimation ist. Wenn man das Spiel startet, wird ständig die „Idle-Animation“ abgespielt. Mit der rechten Maustaste kannst du „Set as স্তর Default State“ auswählen und damit eine andere Animation zur Ausgangsanimation machen.
যখন আপনি চলতে শুরু করেন, অ্যানিমেশনটি উপযুক্ত অ্যানিমেশনে স্যুইচ করা উচিত। প্লেয়ার_আইডলে ডান ক্লিক করুন এবং মেক ট্রানজিশন নির্বাচন করুন। এটি Player_Idle থেকে Player_Run এ একটি সংযোগ তৈরি করে।
আপনি যদি সংযোগটি চয়ন করেন, আপনি যখন একটি অ্যানিমেশন থেকে অন্যটিতে পরিবর্তন হওয়া উচিত তখন আপনি সম্পাদনা করতে পারেন।
তার জন্য আপনার একটি শর্ত দরকার। এটি কাজ করার জন্য আপনার একটি প্যারামিটারও প্রয়োজন।
একটি "ভাসা" তৈরি করুন।
এটি খেলোয়াড়ের গতির প্রতিনিধিত্ব করে।
তারপর আপনি শর্তটি সন্নিবেশ করান:
উদাহরণস্বরূপ, আপনি নির্দিষ্ট করেছেন যে গতি 0.01 এর চেয়ে বেশি হলে অ্যানিমেশন পরিবর্তন হয়:
যখন চরিত্রটি সরানো হয়, তখন এটি অন্য অ্যানিমেশন দিয়ে শুরু হয়।
"হ্যাজ এক্সিট টাইম" নিষ্ক্রিয় করুন।
পরিবর্তনের সময়কাল 0 এ পরিবর্তন করুন।
অক্ষর হাঁটা বন্ধ করলে দৌড়ের অ্যানিমেশন শেষ হওয়া উচিত। আরেকটি রূপান্তর তৈরি করুন যা অলস অবস্থায় ফিরে যায়।
এখানে শর্ত নির্বাচন করুন যে গতি 0.01 এর কম হলে অ্যানিমেশন পরিবর্তন হয়।
এখানেও, "হ্যাজ এক্সিট টাইম" নিষ্ক্রিয় করুন এবং ট্রানজিশন সময়কাল 0 এ সেট করুন।
স্ক্রিপ্টে এখন পরিবর্তনগুলি করা হয়েছে:
আমাদের একটি চরিত্রের জন্য 2 টি স্ক্রিপ্ট আছে: চরিত্র নিয়ন্ত্রণকারী পদার্থবিজ্ঞানের যত্ন নেয় যা চরিত্রটিকে সরায় এবং প্লেয়ার মুভমেন্ট স্ক্রিপ্ট বলে যে চিত্রটি কখন চলে এবং কী গতিতে।
প্রথমে প্লেয়ার মুভমেন্ট স্ক্রিপ্ট খুলুন। প্রথমে আমরা অ্যানিমেটরের অ্যাক্সেস পেতে চাই:
অ্যানিমেশন তৈরির সময় ইউনিটি প্লেয়ারের সাথে অ্যানিমেটর যুক্ত করে। এটি অ্যানিমেটর নিয়ামককে বোঝায়, যা পাল্টে প্লেয়ারের সাথে সম্পর্ক স্থাপন করে। অ্যানিমেটর অবশ্যই PlayerMovement স্ক্রিপ্ট দ্বারা নিয়ন্ত্রিত হতে হবে:
পাবলিক অ্যানিমেটর অ্যানিমেটর;
ইউনিটিতে ফিরে যান এবং আপনি দেখতে পাবেন যে অ্যানিমেটর ক্ষেত্রটি এখন প্লেয়ার মুভমেন্ট স্ক্রিপ্টে উপস্থিত হয়েছে। অ্যানিমেটর উপাদানটি তারপর পরিদর্শক উইন্ডো থেকে এটিতে টেনে আনা হয়।
যখনই আমরা স্ক্রিপ্ট অ্যানিমেটরে লিখি, আমরা অ্যানিমেটর কম্পোনেন্ট অ্যাক্সেস করি।
আপডেট ফাংশনে আপনি এখন অ্যানিমেটর এবং সংশ্লিষ্ট উপাদান অ্যাক্সেস করতে পারেন:
animator.SetFloat ("গতি", Mathf.Abs (অনুভূমিক মুভ);
Mathf.Abs ফাংশন নিশ্চিত করে যে আপনার চরিত্রের আন্দোলনের মান সবসময় ইতিবাচক।
আপনি যদি এখনই ityক্যে আপনার খেলা শুরু করেন, আপনার চলার সময় ইউনিটি আপনার চরিত্রের অ্যানিমেশন খেলবে। যখন আপনি থামেন, নিষ্ক্রিয় অ্যানিমেশন সক্রিয় হয়।
এখন এটি জাম্পিং সম্পর্কে: এর জন্য আমরা অ্যানিমেটরে "যেকোনো রাষ্ট্র" বিকল্পটি ব্যবহার করি। বর্তমানে কোন অ্যানিমেশন চলছে তা কোন ব্যাপার না, যদি চরিত্রটি লাফ দেয়, সে সেই অ্যানিমেশনে চলে যাবে।
এর জন্য একটি শর্ত প্রয়োজন যাতে চরিত্রটি সব সময় লাফাতে না পারে: এখন আরেকটি প্যারামিটার প্রয়োজন।
এটিকে কল করুন: ইসজাম্পিং এবং "ইসজাম্পিং" শর্তটি সত্যে সেট করুন।
আমরা একটি প্রস্থান সময় চাই না এবং আমরা সংক্রমণের সময়কাল 0 এ সেট করি।
চরিত্রটি অ্যানিমেশন থেকে জাম্পিং পর্যন্ত "অলস" এ ফিরে যেতে সক্ষম হওয়া উচিত। আরেকটি সংযোগ তৈরি হবে।
"ইসজাম্পিং" শর্তটি মিথ্যা এবং গতি 0.01 কম।
জাম্প থেকে রান পর্যন্ত আরেকটি সংযোগ তৈরি হয়। চলমান সুইচ অতিরিক্ত শর্ত আছে:
IsJumping = মিথ্যা এবং গতি> 0.01
উভয়ের জন্য, আমরা HasExit সময়কে মিথ্যা এবং সময়কাল 0 এ সেট করেছি।
এখন অ্যানিমেশনগুলির জন্য স্ক্রিপ্ট সামঞ্জস্য করা হয়েছে:
animator.SetBool ("IsJumping", সত্য);
আমরা PlayerMovementScript কে জানিয়ে দিচ্ছি যে চরিত্রটি যখন ল্যান্ড করে তখন লাফানো বন্ধ করে দেয়:
পাবলিক অকার্যকর OnLanding ()
{
animator.SetBool ("IsJumping", মিথ্যা);
}
এখন আমরা ইউনিটিতে একটি নতুন OnLandEvent যোগ করতে পারি:
আপনি একটি OnLandEvent সন্নিবেশ করান এবং PlayerMovement এর অধীনে নির্বাচন করুন: OnLanding ()
তারপরে ইউনিটি জাম্প করার সময় জাম্প অ্যানিমেশন চালায় এবং যখন চরিত্রটি অবতরণ করে তখন এটি শেষ করে।
ইউনিটি সর্বদা খুব সংক্ষেপে অ্যানিমেশন চালায়। "ক্যান ট্রানজিশন টু সেলফ" নিষ্ক্রিয় করুন যাতে অ্যানিমেশনটি পুরোপুরি চালানো হয়:
এখন ক্রাউচিং এর জন্য অ্যানিমেশন যোগ করা হয়েছে।
অলসকে ক্রাউচে সংযুক্ত করুন:
একটি শর্ত যুক্ত করুন: একটি নতুন প্যারামিটার তৈরি করুন: IsCrouching
যদি ক্রুচিং ইসট্রু হয়, অক্ষর ক্রাউচ আছে:
ExitTime এবং সময়কাল আবার সম্পাদনা করুন। পুনরায় সংযোগ করুন।
যদি আপনি প্রস্থান করার সময় নিষ্ক্রিয় করেন এবং অ্যানিমেশনের সময়কাল 0 এ সেট করেন, প্রথমে প্রস্থান করার সময় বাড়ান এবং শুধুমাত্র পরে এটি নিষ্ক্রিয় করুন, অন্যথায় অনেক সতর্কতা কনসোলে যাবে। রান অ্যানিমেশন থেকে আরেকটি সংযোগ তৈরি করুন।
আরেকটি রিটার্ন সংযোগ তৈরি করুন:
IsCrouching মিথ্যা এবং গতি> 0.01
আরেকটি OnCrouchEvent যোগ করুন।
এর জন্য আমাদের PlayerMovement স্ক্রিপ্টে আরেকটি ফাংশন দরকার:
পাবলিক অকার্যকর OnCrouching (bool isCrouching)
{
animator.SetBook ("IsCrouching", isCrouching);
}
এখন ক্রাউচ ইভেন্ট যোগ করুন। গুরুত্বপূর্ণ: স্ক্রিপ্টটি অবশ্যই পাবলিক ক্লাস BoolEvent [System.Serializable] এর আগে হতে হবে। অন্যথায় CrouchEvent ইউনিটি ইন্সপেক্টর উইন্ডোতে উপস্থিত হবে না:
আবার PlayerMovement স্ক্রিপ্ট যোগ করুন। PlayerMovement Script এর অধীনে, উপরের বিভাগ থেকে OnCrouching নির্বাচন করুন।