@gameoverblog

gameover.blog.ir

#یونیتی 


نویسنده: بیسواد از گیم اور 

آموزش بردار نرمال در یونیتی /کاربرد متد نرمالایز در یونیتی/کاربرد normalize/کاربرد تابع normalized در یونیتی/حرکت به سمت مقصد توسط بردار نرمال(بردار عمود بر هدف یا بردار حرکت مستقیم به سمت هدف


تابع Lerp از کلاس Vector3 :


در شکل به وضوح می بینید اگر ما فاصله تا هدف رو 5 قسمت کنیم تابع نرمال xyz ای میده که اگر جمع کنیم با پوز فعلی، یک واحد به سمت هدف حرکت انجام میشه.


#یونیتی


نکته: بی نرمالایز هم به سمت هدف حرکت انجام میشه ولی ابتدا سرعت زیاد و وقتی به هدف نزدیک میشیم،سرعت کمه،چون تفاضل فاصله ها کم شده در speed ضرب کنیم سرعت ثابت نیست،ولی با نرمال سرعت همیشه ثابت هست. لرزش هم داریم در انتها.




نکته ی بعدی : متد لرپ یا تابع Lerp در حرکت نرم ،نسبت به روش normalize بهتر و جدیدتر هست. اما مقایسه ما از این جهت هست که قدرت تابع لرپ تکمیل تر از نرمالایز هست. یعنی لرپ امکانات بیشتری هم داره ولی اینکه بگیم nomalize منسوخ هست نه اینکار هم نمی کنیم. فعلا اون توی جایگاه خودش بمونه ولی فقط قصد ما اثبات قدرت لرپ بود. همین(بیسواد)


مثال ساده :


Public Transform target;

void Update(){

transform.position = Vector3.Lerp(transform.position, target.position, speed  * Time.deltaTime);

}




ادامه (کاربرد تابع Lerp)

حرکت به اندازه ای که تابه لرپ نسبت به ضریب 0.1f  از مبدا t1 به مقصد t2 محاسبه می کنه.
نمی تونیم بگیم 0.1f قدر. چون کار تابع لرپ اینه که اگه پارامتر سوم 1 باشه پوزیشن t2  و اگه 0 باشه پوزیشن t1 و اگه 0.5 باشه پوزیشن بین  t1 و t2 رو برگشت می ده.





using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NORMAL : MonoBehaviour {

    public Transform t1, t2;
 
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {

        t1.position = Vector3.Lerp(t1.position, t2.position, 0.1f);

        }

    }
}

در این مثال با فشردن کلید A ، جسم مبدا به سمت مقصد حرکت می کنه. 
هر بار  به اندازه ای که خود تابع لرپ نسبت به ضریب 0.1f محاسبه می کنه.(دقت کنید نگفتم به طول یک، چون طول یک رو تابع نرمالایز می داد و جلو تر روش پیاده سازی نرمالایز رو با لرپ می گم )

اسکریپت رو بندازید روی هر جسمی که دوست دارید .

سپس گیم ابجکت اول  و دوم رو به ترتیب درگ کنید روی متغیر t1 و t2.

اجرا بگیرید. جسم مقصد رو جابجا کنید تا جسم مبدا بیاد دنبالش.






پیاده سازی normalized با استفاده از lerp/پیاده سازی متد نرمالایز با استفاده از متد لرپ/ساخت normalized با استفاده از Lerp/شبیه سازی تابع/متد normalized با استفاده از متد/تابع Lerp


'تمام محاسبه و کد توسط گیم اور انجام شده و کپی از جایی نیست.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NORMAL : MonoBehaviour {

    public Vector3 t1, t2;
    float speed = 0.01f;
    void Start()
    {
        t1 = new Vector3(0, 0, 0);
        t2 = new Vector3(1, 2, 2);
    
    }
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {
            Debug.Log(Vector3.Lerp(t1, t2, 1.0f/Vector3.Distance(t1,t2)));
            Debug.Log((t2-t1).normalized);
        Debug.Log("Thank u bisavad ma behet eftekhar mikonim");
        }

    }
}

دقت کنید که خروجی هر دو، برداری هست که اگر با بردار اول جمع بشه به اندازه ی یک واحد به سمت بردار دوم حرکت میشه کرد.



تابع لرپ/متد لرپ/تابع Lerp/متد Lerp  از کلاس Vector3

شکل کلی


public static Vector3 Lerp(Vector3 a, Vector3 b, float t);


خروجی:
اگر t=0 بردار a
اگر t=1 بردار b
اگر t=0.5  بردار بین a,b 

در غیر اینصورت برداری روی فاصله ی بین بردار a و b
بر گشت داده میشه.

اگه  بخوایم  تابع normalized رو با Lerp پیاده سازی کنیم باید عدد 1 رو تقسیم به فاصله ی بین دو بردار کنیم،چون یک قسمت از این فاصله رو باید بدیم تا بردار حرکت به ما تحویل داده بشه.

دوستان این نکات رو بنویسید توی دفترتون. چون هر جایی گفته نشده.

مشخصات

  • جهت مشاهده منبع اصلی این مطلب کلیک کنید
  • کلمات کلیدی منبع : تابع ,lerp ,vector3 ,بردار ,normalized ,position ,تابع lerp ,پیاده سازی ,vector3 lerp ,system collections ,using system ,using system collections ,unityengine public class ,public class normal ,class normal monobehaviour
  • در صورتی که این صفحه دارای محتوای مجرمانه است یا درخواست حذف آن را دارید لطفا گزارش دهید.

تبلیغات

محل تبلیغات شما

آخرین مطالب این وبلاگ

محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

برترین جستجو ها

آخرین جستجو ها

دانلود آهنگ جديد فارسي گروه آموزشی حامی کلاس درس Tom فانوس خیال Kristin لایه های نکبت ثباتِ آدمی Kathryn لپ Karen