ساخت ui button در یونیتی 5/ایجاد دکمه و اختصاص اسکریپت برای آن/ساخت دکمه و کدنویسی
منبع:gameover.blog.ir
این یک کلیپ آموزشی که برای شما ساختیم:
http://www.mediafire.com/file/jdywgx70f07s3nh/mp4_ui_button_click_go_level.zip
حالا می تونی button رو به همون طریق ایجاد کنی و بذاری روش: create->ui->button
بعدش تکستچر دکمه رو توی inspector عوض کن . خصوصیت شناور بودن هم می تونی تنظیم کنی (چپ چین و راست چین و ....)
اگه می خوای واسه کلیکش هم کد بنویسی ابتدا انتخابش کن بعدش توی inspector
یک دکمه ی + مثبت هست اونو بزن یک فیلد اضافه میشه. گیم ابجکتی که می خوای
رو بکش بنداز روش.
حالا می تونی تابع دلخواهی که داخل اسکریپت های اون گیم ابجکت وجود داره رو از لیست انتخاب کنی برای اجرا.
اینم ببینید:
http://answers.unity3d.com/questions/922045/unity-5-ui-button-onclick.html
+
http://answers.unity3d.com/questions/942622/how-do-you-call-a-function-with-a-button-unity-5-u.html
چند نکته :(زبان سیشارپ)
* برای کد نویسی هم می تونید public Button رو تعریف کنید و دکمه ها رو بکشید بندازید روشون.
* ضمنا باید فاضی نام using UnityEngine.UI رو هم در قسمت بالایی بیارید.
* کد نویسی هم توی تابع Start() باید باشه.
مثال :
یک دکمه برای خروج بسازید و اسکریپت زیر رو بدید به یک گیم ابجکت (مثال canvas) سپس دکمه رو بکشید بندازید روی متغیر btnExit :
using UnityEngine; using UnityEngine.UI; using System.Collections; public class Move : MonoBehaviour { public Button btnExit; void Start () { btnExit.onClick.AddListener(()=>{ Application.Quit(); }); }
نکته:
کامپوننت event system هم اگه نیاز شد باید اختصاص بدید بهش(با زدن دکمه Add component و تایپ event system و انتخاب از لیست)
برای کدنویسی رویداد ها(مثل نگه داشتن کلیک یا .....) باید اسکریپتی بنویسید که یک تابع از نوع public void مثلا داشته باشه.
سپس یک Event Trigger component به دکمه اضافه کنیم (با زدن دکمه ی component در inspector بعد از انتخاب دکمه در hierarchy)، و add new event type رو می زنیم و نوع رویدادی که می خوایم کد رو اختصاص بدیم بهش از لیست انتخاب می کنیم مثل pointerClick ، مثل Drag یا غیره.
مثلا ما Drag رو انتخاب می کنیم.
بعدش روی + می زنیم و دکمه رو می کشیم روی None(object) تا معرفی کنیم می خوایم از اسکریپت اختصاص داده بهش استفاده کنیم.
سپس از لیست no function ابتدا اسکریپتی که ساخته بودیم رو پیدا و از زیرشاخش تابعی که به صورت void public توی اسکریپت خودمون تعریف کرده بودیم انتخاب می کنیم(یادتون نره حتما نوع تابع باید از نوع public باشه ویلا توی لیست نمیاد)
-
مثلا می تونید رویداد drag رو انتخاب کنید و یک اسکریپت برای حرکت بسازید و بهش اختصاص بدید:
using UnityEngine; using System.Collections; public class test : MonoBehaviour { // Use this for initialization public void move(){ transform.position = Input.mousePosition; } }
سوالی بود بپرسید.