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

Aurlito

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

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

کاربرانی که این گفتگو را مشاهده می‌کنند (کاربران: 0, مهمان: 1)

Top
رمز عبور خود را فراموش کرده اید؟