باز شدن درب در صورت دیدن دوربین از روبرو
چهارشنبه, ۲۶ اسفند ۱۳۹۴، ۱۱:۴۷ ب.ظ
gameover.blog.ir
دقت کنید برای اینکار یک اشعه یا ray باید به سمت جلو یا forward تا فاصله(distace) دلخواه پرتاب کنیم. در صورتی که برخورد صورت گرفت باید تشخیص بدیم با چی برخورد انجام شده. برای اینکار ابتدا به درب یک برچسب یا تگ(tag) دلخواه مثلا door می دیم. سپس از طریق کد بررسی می کنیم اگر با درب برخورد داشتیم یا درب روبروی دید دوربین بود انیمیشن باز شدن درب اجرا بشه.
نکته ی مهم: شما باید گزینه ی loopTime از انیمیشن خودتون رو در inspector غیرفعال کنید تا انیمیشن تکرار نشه.
bool isOpen=false;
float distance=3f;
void myRaycast(){ RaycastHit hit; Ray myRay = new Ray(transform.position, Vector3.forward); if(Physics.Raycast (myRay, out hit, distance)){ if(hit.collider.tag == "door" && isOpen==false){ Animation.Play("openDoor"); isOpen=true; }//if internal }//if external }//myRaycast()
۹۴/۱۲/۲۶