1. برای کسب آخرین اخبار و اطلاعات کانال بازی سنتر را دنبال کنید.
    برای عضویت در کانال کلیک کنید
    بستن اطلاعیه

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

گفتگو در 'آموزش ساخت و توسعه بازی' ایجاد شده توسط Aurlito, ‏Jan 8, 2019.

  1. Aurlito

    کاربر سایت

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

    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- بر اساس اون زاویه، مکعب یا کپسولمون رو دور میدیم.

    به همین سادگی. خودتون امتحان کنید.
     
    titansarus این نوشته را Like کرده است.