ساخت نوار سلامت سه بعدی_ساخت نوار خون سه بعدی در یونیتی 5 _3d healthbar unity
سه شنبه, ۶ بهمن ۱۳۹۴، ۰۲:۵۹ ب.ظ
منبع:gameover.blog.ir
روش قدیمی(منسوخ):
یک روش سنتی اینه که یک گیم ابجکت تهی یا empty game object بسازیم و دشمن و یک cube با رنگ قرمز رو بندازیم توی زیرشاخش(به عنوان فرزندش).
بعدش این مکعب رو scale کنیم و در مثلا راستای محور x جهانی(تحت زاویه ای که خود دشمن قرار گرفته یا نسبت به مرکز خودش) اونو کم کنیم مثال:
using UnityEngine; using System.Collections; //Author:sajjad3011 public class NewBehaviourScript : MonoBehaviour { public GameObject navarKhun; /* void Start () { navarKhun = GameObject.Find("Cube"); } */ public void btnChangeHeight() { navarKhun.gameObject.transform.localScale -= new Vector3(1,0,0); } }توضیح:
یک بردار ساخت سه بعدی که y و z اش صفر هست و x یک هست و این بردار رو از اسکیل فعلی کم می کنه.
یعنی فقط ایکس اش به اندازه یکی کم میشه .
بعدش می تونیم چک کنیم اگه localScale.x از صفر کمتر شد دشمن مرده.
روش جدید و بهتر با استفاده از ui:
اما روش جدید در یونیتی 5 استفاده از کانواس هست.
به هر گیم ابجکت دشمن یک کانواس می دیم و توی تنظیمات render mode رو روی world space می ذاریم. خوبیش اینه که می تونیم کانواس رو اسکیل کنیم و حتی خودش نسبت به زاویه چرخش دشمن چرخش می کنه و تنظیم میشه.
بعدش توی کد می تونیم width و height ایمیج رو تنظیم کنیم.
مثال:
Image im; im.rectTransform.rect.width=100همچنین باید اسپرایت یا image خون رو lookat کنیم به دوربین که روش به سمت دوربین باشه.
مثال:
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Transform target; void Update() { // Rotate the camera every frame so it keeps looking at the target transform.LookAt(target); } }دوربین رو باید بدیم به target در inspector تا نوار خون نگاهش به سمت دوربین باشه.
۹۴/۱۱/۰۶