آموزش هوش مصنوعی ساده در یونیتی با استفاده از ریکستینگ

Aurlito

کاربر سایت
Feb 16, 2008
1,749
نام
چوبک
در این آموزش میخوام هوش مصنوعی ساده به کاراکترمون، یک پریمیتیو ساده مثلا کپسول یا مکعب بدم. به طوری که وقتی به مانع رسید، برگرده. کاری نداره. اول کد زیر رو ببینید:

Code:
public class WanderingAI : MonoBehaviour
{
    float speed = 3.0f;
    public float obstacleRange = 5.0f;
   
    void Start()
    {
       
    }

   
    void Update()
    {
        transform.Translate(0, 0, speed * Time.deltaTime);

        Ray ray = new Ray(transform.position, transform.forward);
        RaycastHit hit;
        if (Physics.SphereCast(ray, 0.75f, out hit))
        {
            if (hit.distance < obstacleRange)
            {
                float angle = Random.Range(-110, 110);
                transform.Rotate(0, angle, 0);
            }
        }
    }
}

1- ابتدا یک خواص پابلیک واسه کد تعیین میکنیم که سرعت کاراکترمونه.
2- یک حدنصاب فاصله تعیین میکنیم.
3- میگیم راه بیفت، مستقیم، کاری به موانع نداشته باش.
4- یک ری کست میکنیم به زاویه ی جلوی کاراکتر و موقعیت خود کاراکتر.
5- یک آبجکت هیت میسازیم.
6- با استفاده از اسلوب Physics.SphereCast به صورت یک کره به شعال 0.75 چک میکنیم اطرافمون رو و جواب رو میدیم به آبجکت هیت.
7- اگر مانع جلومون بود، چک میکنیم فاصله ی آبجکت هیت کمتر از حد نصابه.
8- یک زاویه رندوم انتخاب میکنیم.
9- بر اساس اون زاویه، مکعب یا کپسولمون رو دور میدیم.

به همین سادگی. خودتون امتحان کنید.
 
  • Like
Reactions: titansarus

کاربرانی که این قسمت را مشاهده می‌کنند

Top
رمز عبور خود را فراموش کرده اید؟
or ثبت‌نام سریع از طریق سرویس‌های زیر