ویرگول
ورودثبت نام
soheil moonesi
soheil moonesiC# enthusiast
soheil moonesi
soheil moonesi
خواندن ۲ دقیقه·۳ سال پیش

Unity Input.GetAxis

خوب به نظرم یکی از جالب ترین موارد توی Unity اینه که میتونیم با ورودی موس و کیبورد یه بازی بسازیم.

حالا اولین مرحله گرفتن ورودی هاست: به طور مثال با arrow های روی کیبورد یا W,A,S,D برای بالا و پایین کردن و چپ و راست کردن آبجت هایی که ساختیم.

حالا توی همین قسمت باید بگم که یه قسمتی توی برنامه هست به اسم input manager که توی قسمت edit و بعد project manager که اونجا میتونیم تعیین کنیم که مثلا ورودی برای محور x , y , z و موارد دیگه رو تعیین میکنیم.

[SerializeField] float yValue = 0.02f;
[SerializeField] float zValue = 0;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
float xValue = Input.GetAxis("Horizontal");
transform.Translate(xValue,yValue,zValue)
}

خوب حالا بیایم برسی کنیم که این کد چی داره میگه :

خوب اونجایی که از SerializeField استفاده کردیم یعنی این که این پرامتر ها رو میتونیم داخل inspector نرم افزار تغییرشون بدیم و مقدارشون رو هم ببینیم.

قسمت update میاد و در هر فریم اجرا میشه ولی قسمت start فقط یکبار اونم هم در شروع بازی اجرا میشه و تمام.

حالا توی خط بعدی اومدیم مقدار xValue رو از ورودی های کیبورد گرفتیم به این شکل گرفتیم:

Input.GetAxis

حالا برای کدوم محور رو میخوایم بگیریم ، افقی :

Horizontal

و بعد اومدیم از

transform.Translate(xValue,yValue,zValue)

استفاده کردیم، جالب اینجاست که من قبلا JavaScript کار کرده بودم و مشابه این مفاهیم رو توی قسمت ساخت انیمیشن و مفاهیم front-end خونده بودم و باهاش کار کرده بودم، و اینجا خیلی جالب و جذاب شد موضوع برام

از transform.Translate برای تغییر آبجکت در محور های X,Y,Z استفاده میکنیم

و اگر دقت کنید ما قبلا دو قسمت Y , Z رو مقدار دهی ثابت کرده بودیم و برای قسمت x اومدیم و از کیبورد مقادیر رو گرفتیم.


نرم افزار
۰
۰
soheil moonesi
soheil moonesi
C# enthusiast
شاید از این پست‌ها خوشتان بیاید