ইনপুট সিস্টেম এবং কন্ট্রোল
Unity-তে ইনপুট সিস্টেম এবং কন্ট্রোল গেমের কার্যক্রম এবং খেলোয়াড়ের ইন্টারঅ্যাকশনের জন্য অপরিহার্য। ইনপুট সিস্টেম হল সেই প্রক্রিয়া যা খেলোয়াড়ের ইনপুট (যেমন কীবোর্ড, মাউস, এবং কন্ট্রোলার) গ্রহণ করে এবং সেগুলি গেমের মধ্যে কার্যকর করে।
ইনপুট সিস্টেম
সংজ্ঞা
ইনপুট সিস্টেম হল Unity-এর একটি ফিচার যা খেলোয়াড়ের ইনপুটকে সনাক্ত এবং পরিচালনা করে। এটি বিভিন্ন ইনপুট ডিভাইস থেকে তথ্য গ্রহণ করে এবং তা গেমের কার্যক্রমে রূপান্তর করে।
প্রধান বৈশিষ্ট্য
- Multiple Input Devices: কীবোর্ড, মাউস, গেমপ্যাড, এবং টাচ স্ক্রীন সমর্থন করে।
- Input Mapping: ইনপুটের জন্য নির্দিষ্ট কীগুলি এবং বোতামগুলি মানচিত্র করা যায়, যা বিভিন্ন প্ল্যাটফর্মের জন্য কাস্টমাইজেশন সুবিধা প্রদান করে।
- Action-based Input: নতুন ইনপুট সিস্টেমে ইনপুট অ্যাকশনের ভিত্তিতে কাজ করা যায়, যা গেমপ্লের সময় বাস্তবায়ন করা সহজ করে।
ইনপুট সিস্টেম সেট আপ করা
1. Unity ইনপুট সিস্টেম প্যাকেজ ইনস্টল করা
- Window > Package Manager তে যান।
Input Systemপ্যাকেজ খুঁজে বের করুন এবং ইনস্টল করুন।
2. ইনপুট অ্যাকশন তৈরি করা
- Assets > Create > Input Actions নির্বাচন করুন এবং একটি নতুন ইনপুট অ্যাকশন তৈরি করুন।
- ইনপুট অ্যাকশন উইন্ডোতে, আপনার অ্যাকশনগুলি (যেমন
Move,Jump,Fire) তৈরি করুন এবং উপযুক্ত কীগুলি সেট করুন।
3. স্ক্রিপ্টে ইনপুট ব্যবহার করা
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
private Vector2 moveInput;
// Called when the player moves
public void OnMove(InputAction.CallbackContext context)
{
moveInput = context.ReadValue<Vector2>();
}
void Update()
{
// Move the player using the input
transform.Translate(moveInput * Time.deltaTime);
}
}
কন্ট্রোল
সংজ্ঞা
কন্ট্রোল হল গেমে খেলোয়াড়ের অবজেক্ট বা চরিত্রের আচরণ নিয়ন্ত্রণ করার জন্য ব্যবহৃত কোড এবং লজিক। এটি ইনপুট সিস্টেমের মাধ্যমে প্রবাহিত তথ্য গ্রহণ করে এবং নির্দিষ্ট কার্যকলাপ সম্পাদন করে।
প্রধান বৈশিষ্ট্য
- Character Movement: ক্যারেক্টারের মুভমেন্ট, লাফ দেওয়া, দৌড়ানো ইত্যাদি নিয়ন্ত্রণ করা।
- Camera Control: ক্যামেরার অবস্থান এবং রোটেশন নিয়ন্ত্রণ করা, যাতে খেলোয়াড়ের দৃষ্টিকোণ পরিবর্তন করা যায়।
- Game Mechanics: গেমের অন্যান্য মেকানিক্স, যেমন শুটিং, ইন্টারঅ্যাকশন এবং ইনভেন্টরি পরিচালনা করা।
কন্ট্রোল সেট আপ করা
উদাহরণ: ক্যারেক্টার মুভমেন্ট
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
public float speed = 5f; // Movement speed
private Vector2 moveInput;
// Called when the player moves
public void OnMove(InputAction.CallbackContext context)
{
moveInput = context.ReadValue<Vector2>();
}
void Update()
{
// Calculate movement direction
Vector3 movement = new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;
// Move the player
transform.Translate(movement);
}
}
সারসংক্ষেপ
Unity-তে ইনপুট সিস্টেম এবং কন্ট্রোল গেমের খেলোয়াড়ের অভিজ্ঞতা উন্নত করার জন্য অত্যন্ত গুরুত্বপূর্ণ। ইনপুট সিস্টেম খেলোয়াড়ের ইনপুট গ্রহণ করে এবং কন্ট্রোল সেই ইনপুটকে বাস্তবায়িত করে গেমের চরিত্র বা অবজেক্টগুলির আচরণ নিয়ন্ত্রণ করে। এই ব্যবস্থাগুলি ব্যবহার করে ডেভেলপাররা একটি আকর্ষণীয় এবং ইন্টারেক্টিভ গেমিং অভিজ্ঞতা তৈরি করতে সক্ষম হন।
Unity Input System হল Unity-এর একটি শক্তিশালী ফিচার যা খেলোয়াড়ের ইনপুট (যেমন কীবোর্ড, মাউস, গেমপ্যাড, এবং টাচ স্ক্রীন) পরিচালনা করার জন্য ব্যবহৃত হয়। এটি একটি নমনীয় এবং উন্নত ইনপুট সিস্টেম যা বিভিন্ন ডিভাইসের সাথে কাজ করে এবং গেম ডেভেলপমেন্টের সময় ইনপুটের জটিলতা সহজ করে।
Unity Input System এর প্রধান বৈশিষ্ট্য
Multiple Device Support: Unity Input System একাধিক ইনপুট ডিভাইসের সমর্থন করে, যেমন কীবোর্ড, মাউস, গেম কন্ট্রোলার, এবং টাচ স্ক্রীন।
Action-based Input: ইনপুট অ্যাকশনগুলি তৈরি করে আপনি নির্দিষ্ট ইনপুটের জন্য প্রয়োজনীয় ফাংশন সংজ্ঞায়িত করতে পারেন। এই পদ্ধতি বিভিন্ন ইনপুটের জন্য কোড লেখা সহজ করে।
Customization: ইনপুট মাপিং এবং সেটিংস কাস্টমাইজ করার জন্য একটি ব্যবহারকারী-বান্ধব UI প্রদান করে।
Event-driven: ইনপুট সিস্টেমে ইভেন্ট-ভিত্তিক আর্কিটেকচার রয়েছে, যা ইনপুটে পরিবর্তন ঘটলে সঠিক ফাংশনকে কল করতে সহায়তা করে।
Unity Input System সেটআপ করা
1. ইনপুট সিস্টেম প্যাকেজ ইনস্টল করা
- Unity Editor-এ যান এবং Window > Package Manager খুলুন।
- তালিকা থেকে
Input Systemপ্যাকেজটি খুঁজে বের করুন এবং ইনস্টল করুন।
2. ইনপুট অ্যাকশন তৈরি করা
- Assets > Create > Input Actions নির্বাচন করুন এবং একটি নতুন ইনপুট অ্যাকশন ফাইল তৈরি করুন।
- ফাইলটি ডাবল ক্লিক করে ইনপুট অ্যাকশন উইন্ডো খুলুন।
- নতুন অ্যাকশন তৈরি করুন, যেমন
Move,Jump, এবংFireএবং তাদের সাথে কীগুলি যুক্ত করুন।
C# স্ক্রিপ্টে ইনপুট ব্যবহার করা
- Input Action Asset যোগ করা: একটি Game Object (যেমন Player) নির্বাচন করুন এবং একটি নতুন C# স্ক্রিপ্ট যুক্ত করুন (যেমন
PlayerController)। - Input System Reference: ইনপুট অ্যাকশন অ্যাসেটকে স্ক্রিপ্টে রেফারেন্স করুন।
উদাহরণ: ইনপুট সিস্টেম ব্যবহার করে ক্যারেক্টার মুভমেন্ট
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
private Vector2 moveInput; // Store movement input
public float speed = 5.0f; // Movement speed
// Called when the player moves
public void OnMove(InputAction.CallbackContext context)
{
moveInput = context.ReadValue<Vector2>(); // Get input value
}
void Update()
{
// Move the player based on input
Vector3 movement = new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;
transform.Translate(movement);
}
}
UI উপাদানগুলির জন্য ইনপুট ব্যবস্থাপনা
ইনপুট সিস্টেম UI উপাদানের সাথে ইন্টারঅ্যাকশন পরিচালনার জন্যও ব্যবহৃত হয়, যেমন বাটন ক্লিক করা বা ইনপুট ফিল্ডে লেখা।
উদাহরণ: UI Button Click
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class UIButtonManager : MonoBehaviour
{
public Button myButton; // Reference to the button
void Start()
{
myButton.onClick.AddListener(OnButtonClick); // Add listener for button click
}
void OnButtonClick()
{
Debug.Log("Button clicked!"); // Action on button click
}
}
সারসংক্ষেপ
Unity Input System গেম ডেভেলপমেন্টের জন্য একটি শক্তিশালী এবং নমনীয় ইনপুট ব্যবস্থা। এটি একাধিক ডিভাইস সমর্থন করে, অ্যাকশন ভিত্তিক ইনপুট তৈরি করে, এবং কাস্টমাইজেশন ও ইভেন্ট-ভিত্তিক কার্যকারিতা সরবরাহ করে। Unity-তে ইনপুট সিস্টেম ব্যবহার করে ডেভেলপাররা খেলোয়াড়ের ইনপুটকে দক্ষতার সাথে পরিচালনা করতে পারেন, যা একটি স্বচ্ছন্দ এবং ইন্টারেক্টিভ গেমিং অভিজ্ঞতা নিশ্চিত করে।
Unity তে মাউস, কীবোর্ড, এবং কন্ট্রোলার ইনপুট হ্যান্ডল করা গেমের ইন্টারঅ্যাকটিভিটি এবং খেলোয়াড়ের অভিজ্ঞতা তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ। Unity বিভিন্ন ইনপুট সিস্টেম সমর্থন করে, যা আপনাকে সহজে ইনপুট ডেটা সংগ্রহ করতে এবং প্রক্রিয়া করতে দেয়। নিচে এই ইনপুটগুলি হ্যান্ডল করার পদ্ধতি আলোচনা করা হলো।
১. মাউস ইনপুট হ্যান্ডল করা
Unity তে মাউস ইনপুটের জন্য Input ক্লাস ব্যবহার করা হয়। নিচে কিছু মৌলিক উদাহরণ দেওয়া হলো:
১.১ মাউস ক্লিক শনাক্ত করা
using UnityEngine;
public class MouseInput : MonoBehaviour
{
void Update()
{
// মাউস বাটন ক্লিকের জন্য চেক করুন
if (Input.GetMouseButtonDown(0)) // 0 = বাম ক্লিক
{
Debug.Log("Left mouse button clicked.");
}
// মাউস অবস্থান পেতে
Vector3 mousePosition = Input.mousePosition;
Debug.Log("Mouse Position: " + mousePosition);
}
}
১.২ মাউস মুভমেন্ট শনাক্ত করা
void Update()
{
// মাউস অবস্থান পেতে
Vector3 mousePosition = Input.mousePosition;
// মাউস অবস্থান ব্যবহার করে কার্যক্রম
// যেমন, ক্যামেরার দিকে নির্দেশ করা
Debug.Log("Mouse Position: " + mousePosition);
}
২. কীবোর্ড ইনপুট হ্যান্ডল করা
কীবোর্ড ইনপুটও Input ক্লাস ব্যবহার করে সহজেই হ্যান্ডল করা যায়।
২.১ কীবোর্ড ইনপুট শনাক্ত করা
using UnityEngine;
public class KeyboardInput : MonoBehaviour
{
void Update()
{
// W, A, S, D কীগুলি শনাক্ত করা
if (Input.GetKey(KeyCode.W))
{
Debug.Log("Moving Up");
}
if (Input.GetKey(KeyCode.S))
{
Debug.Log("Moving Down");
}
if (Input.GetKey(KeyCode.A))
{
Debug.Log("Moving Left");
}
if (Input.GetKey(KeyCode.D))
{
Debug.Log("Moving Right");
}
// Esc কী চাপা হলে গেম বন্ধ করা
if (Input.GetKeyDown(KeyCode.Escape))
{
Application.Quit();
Debug.Log("Game Closed");
}
}
}
৩. কন্ট্রোলার ইনপুট হ্যান্ডল করা
Unity তে কন্ট্রোলার ইনপুট হ্যান্ডল করার জন্য Input.GetAxis বা Unity এর নতুন ইনপুট সিস্টেম ব্যবহার করা হয়।
৩.১ কন্ট্রোলার ইনপুট শনাক্ত করা
using UnityEngine;
public class ControllerInput : MonoBehaviour
{
void Update()
{
// Horizontal এবং Vertical ইনপুট
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
// ইনপুট অনুযায়ী চরিত্রের মুভমেন্ট
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
transform.Translate(movement * Time.deltaTime);
// কন্ট্রোলার বাটন শনাক্ত করা
if (Input.GetButtonDown("Jump"))
{
Debug.Log("Jump button pressed.");
}
}
}
৪. Unity ইনপুট সিস্টেম (নতুন)
Unity এর নতুন ইনপুট সিস্টেম ব্যবহার করে কন্ট্রোলার ইনপুট এবং অন্যান্য ইনপুটকে আরও উন্নতভাবে হ্যান্ডল করা সম্ভব। এটি আরো কার্যকরী এবং সহজে কাস্টমাইজযোগ্য।
৪.১ নতুন ইনপুট সিস্টেম সেটআপ করা
- Package Manager-এ যান এবং
Input Systemপ্যাকেজ ইনস্টল করুন। - একটি নতুন Input Action Asset তৈরি করুন।
৪.২ ইনপুট সেটআপ করা
- Input Action Asset এ একটি অ্যাকশন তৈরি করুন, যেমন
MoveএবংJump। - ইনপুটের জন্য কীবোর্ড, মাউস এবং কন্ট্রোলার ইনপুট যুক্ত করুন।
৪.৩ ইনপুট ব্যবহার করা
using UnityEngine;
using UnityEngine.InputSystem;
public class NewInput : MonoBehaviour
{
public void OnMove(InputAction.CallbackContext context)
{
Vector2 movement = context.ReadValue<Vector2>();
Debug.Log("Move: " + movement);
}
public void OnJump(InputAction.CallbackContext context)
{
if (context.performed)
{
Debug.Log("Jump!");
}
}
}
উপসংহার
Unity তে মাউস, কীবোর্ড, এবং কন্ট্রোলার ইনপুট হ্যান্ডল করা একটি মৌলিক প্রক্রিয়া যা গেমের ইন্টারঅ্যাকটিভিটি তৈরি করে। Input ক্লাস ব্যবহার করে সহজেই ইনপুট ডেটা সংগ্রহ করা যায়। Unity এর নতুন ইনপুট সিস্টেম ব্যবহার করে ইনপুট হ্যান্ডলিং আরও কার্যকর এবং কাস্টমাইজেবল। এই পদ্ধতিগুলি ব্যবহার করে, আপনি একটি ইন্টারঅ্যাকটিভ এবং আকর্ষণীয় গেম তৈরি করতে পারবেন।
Unity-তে Custom Input Mapping এবং Player Control গেমের ইনপুট ব্যবস্থাপনা এবং খেলোয়াড়ের অভিজ্ঞতা উন্নত করার জন্য অপরিহার্য। এই প্রক্রিয়াগুলি ডেভেলপারদের খেলোয়াড়দের ইনপুটের ওপর ভিত্তি করে গেমের চরিত্র এবং অবজেক্টগুলির আচরণ নিয়ন্ত্রণ করতে সহায়তা করে।
Custom Input Mapping
সংজ্ঞা
Custom Input Mapping হল ইনপুট সিস্টেমের একটি ফিচার যা ডেভেলপারদের খেলোয়াড়ের ইনপুটকে কাস্টমাইজ করার সুযোগ দেয়। এটি খেলোয়াড়ের জন্য একটি সুনির্দিষ্ট কীবোর্ড এবং কন্ট্রোলার মাপ তৈরি করার জন্য ব্যবহৃত হয়, যা গেমপ্লে অভিজ্ঞতাকে ব্যক্তিগতকৃত করে।
কাস্টম ইনপুট ম্যাপিং সেটআপ
Input Action Asset তৈরি করা:
- Unity Editor-এ, Assets > Create > Input Actions নির্বাচন করুন এবং একটি নতুন ইনপুট অ্যাকশন ফাইল তৈরি করুন।
- ফাইলটি ডাবল ক্লিক করে ইনপুট অ্যাকশন উইন্ডো খুলুন।
অ্যাকশন এবং বন্ড তৈরি করা:
- নতুন অ্যাকশন তৈরি করুন, যেমন
Move,Jump,Fire। Moveঅ্যাকশনের জন্যWASDঅথবাArrow Keysএবং কন্ট্রোলার স্টিক যোগ করুন।
Input System Package ইনস্টল করা:
- Package Manager-এ গিয়ে
Input Systemপ্যাকেজ ইনস্টল করুন।
Player Control
সংজ্ঞা
Player Control হল গেমের চরিত্র বা অবজেক্টের আচরণ নিয়ন্ত্রণের প্রক্রিয়া। এটি ইনপুট সিস্টেম থেকে ডেটা নিয়ে চরিত্রের মুভমেন্ট, অ্যাকশান এবং অন্যান্য কার্যক্রম পরিচালনা করে।
Player Control এর উদাহরণ
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
private Vector2 moveInput; // Player movement input
public float speed = 5f; // Speed of the player
void OnEnable()
{
// Subscribe to input actions
var inputActions = new PlayerInputActions(); // Assuming PlayerInputActions is your generated class
inputActions.Player.Enable();
inputActions.Player.Move.performed += OnMove; // Assigning OnMove method to Move action
}
void OnDisable()
{
// Unsubscribe from input actions
var inputActions = new PlayerInputActions();
inputActions.Player.Disable();
}
void OnMove(InputAction.CallbackContext context)
{
// Read input from the context and store it
moveInput = context.ReadValue<Vector2>();
}
void Update()
{
// Move the player character based on input
Vector3 movement = new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;
transform.Translate(movement);
}
}
কাস্টম ইনপুট সেটিংস
ডেভেলপাররা ইনপুটের কাস্টমাইজেশন করতে পারে, যেমন কী সেটিংস পরিবর্তন করা বা নতুন ইনপুট অ্যাকশনের জন্য মাপ তৈরি করা। এটি খেলোয়াড়ের অভিজ্ঞতাকে স্বাচ্ছন্দ্যপূর্ণ করে।
PlayerPrefs ব্যবহার করে কাস্টম কন্ট্রোল সেটিংস সংরক্ষণ করা:
PlayerPrefs.SetString("MoveUp", "W");
PlayerPrefs.SetString("MoveDown", "S");
সংশোধন করার সময় ইনপুট পরিবর্তন করা:
- ডেভেলপাররা UI ইনপুট ফর্ম তৈরি করতে পারে, যেখানে খেলোয়াড় নিজস্ব কী সেটিংস পরিবর্তন করতে পারে।
সারসংক্ষেপ
Unity-তে Custom Input Mapping এবং Player Control গেমের ইনপুট ব্যবস্থাপনার একটি গুরুত্বপূর্ণ অংশ। কাস্টম ইনপুট ম্যাপিং ডেভেলপারদের ইনপুট সিস্টেমের নমনীয়তা প্রদান করে, যেখানে খেলোয়াড়দের কাস্টমাইজেশনের সুযোগ থাকে। Player Control ইনপুট সিস্টেম থেকে প্রাপ্ত তথ্য নিয়ে চরিত্র বা অবজেক্টগুলির আচরণ নিয়ন্ত্রণ করে। এই দুটি উপাদান একত্রে ব্যবহার করে ডেভেলপাররা একটি সৃজনশীল এবং ব্যক্তিগতকৃত গেমিং অভিজ্ঞতা তৈরি করতে সক্ষম হন।
Unity-তে একটি Basic Player Controller তৈরি করা একটি গুরুত্বপূর্ণ গেম ডেভেলপমেন্টের কাজ। এই উদাহরণে, আমরা একটি প্লেয়ার চরিত্রের জন্য একটি সহজ স্ক্রিপ্ট তৈরি করব যা কীবোর্ড ইনপুট ব্যবহার করে চরিত্রকে সামনের দিকে এবং পিছনের দিকে সরানোর জন্য কার্যকরী হবে। এছাড়াও, আমরা ইনপুট সিস্টেম ব্যবহার করব।
১. Unity প্রজেক্ট সেট আপ করা
- Unity Editor খুলুন এবং একটি নতুন 3D প্রজেক্ট তৈরি করুন।
- Hierarchy প্যানেলে ডান ক্লিক করুন এবং 3D Object > Capsule নির্বাচন করুন (এটি আমাদের প্লেয়ার চরিত্র হবে)।
- GameObject > Create Empty নির্বাচন করুন এবং এটিকে Player নাম দিন। ক্যাপসুলটি Player GameObject এর অধীনে রাখুন।
২. ইনপুট সিস্টেম সেট আপ করা
- Window > Package Manager তে যান এবং
Input Systemপ্যাকেজটি ইনস্টল করুন। - Assets > Create > Input Actions নির্বাচন করুন এবং একটি নতুন ইনপুট অ্যাকশন ফাইল তৈরি করুন।
- ইনপুট অ্যাকশন ফাইলটি খুলুন এবং নিচের মতো একটি অ্যাকশন তৈরি করুন:
- Action Map: Player
- Action: Move
- Action Type: Value
- Control Type: Vector2
- Bindings:
- WASD (W - Up, A - Left, S - Down, D - Right)
- Arrow Keys
৩. Basic Player Controller স্ক্রিপ্ট তৈরি করা
- Assets > Create > C# Script নির্বাচন করুন এবং স্ক্রিপ্টের নাম দিন
PlayerController। - স্ক্রিপ্টটি খুলুন এবং নিচের কোড যুক্ত করুন:
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerController : MonoBehaviour
{
private Vector2 moveInput; // Player movement input
public float speed = 5f; // Speed of the player
void OnEnable()
{
var inputActions = new PlayerInputActions(); // Assuming PlayerInputActions is your generated class
inputActions.Player.Enable();
inputActions.Player.Move.performed += OnMove; // Assigning OnMove method to Move action
inputActions.Player.Move.canceled += OnMove; // Reset input on cancel
}
void OnDisable()
{
var inputActions = new PlayerInputActions();
inputActions.Player.Disable();
}
void OnMove(InputAction.CallbackContext context)
{
// Read input from the context and store it
moveInput = context.ReadValue<Vector2>();
}
void Update()
{
// Move the player character based on input
Vector3 movement = new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;
transform.Translate(movement);
}
}
৪. স্ক্রিপ্ট যুক্ত করা
- Player GameObject-এ
PlayerControllerস্ক্রিপ্ট যুক্ত করুন। - Inspector Panel-এ Player Input Actions ফাইলটি PlayerController স্ক্রিপ্টের সাথে যুক্ত করুন।
৫. গেম চালানো
- Unity Editor-এ Play বাটনে ক্লিক করুন।
- W, A, S, D কী অথবা Arrow Keys ব্যবহার করে ক্যাপসুলটি সরান।
সারসংক্ষেপ
এই উদাহরণে, আমরা একটি Basic Player Controller তৈরি করেছি যা Unity-তে কীবোর্ড ইনপুট ব্যবহার করে চরিত্রকে সরাতে সক্ষম। ইনপুট সিস্টেম ব্যবহার করে আমরা ইনপুটকে কার্যকরীভাবে পরিচালনা করেছি। আপনি এই কোডটিকে আরও কাস্টমাইজ করতে পারেন, যেমন লাফ দেওয়া, দৌড়ানো, এবং অন্যান্য গেমপ্লে মেকানিক্স যুক্ত করা।
Read more