جسم دلخواه انتخاب رو از داخل صحنه یا کادر hierarchy(کادر لیست اجزای صحنه) انتخاب کنید و یک کامپوننت ریجید بادی بهش بدید.(با زدن دکمه ی AddComponent و تایپ Rigidbody و انتخاب ریجیدبادی سه بعدی از لیست, ...ادامه مطلب
@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) حرکت به اندا, ...ادامه مطلب
glBegin(GL_POINTS); glColor3u(255,255,0);//rgb yellow glVertex2i(100,100);//xy glEnd(); علت عدم رسم نقطه در openGL: برای رسم نقطه اولا یادتون باشه وقتی یک ورتکس یا راس رسم می کنید اگه مختصات اعشاری (float) بود ته دستور مختصات f بزنید یعنی glVertex2f و اگه مختصات صحیح هست i یعنی glVertex2i بزنید. // glPointSize(0.37); glBegin(GL_POINTS); glColor3ub(0,0,0); glVertex2f(0.5f,0.6f); glColor3ub(255,0,0); glVertex2f(0.5f,0.5f); glEnd();, ...ادامه مطلب
glBegin(GL_POINTS); glColor3u(255,255,0);//rgb yellow glVertex2i(100,100);//xy glEnd();, ...ادامه مطلب
gameover.blog.ir نویسنده:بیسواد شکل کلی: public static bool SphereCast(Vector3 origin, float radius, Vector3 direction, out RaycastHit hitInfo, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal); origin:مرکز کره در آغاز جارو کردن(اسکن) radius:شعاع کره(محوطه ی جستجوی کروی) direction:جهت جاور کردن (sweep ) کروی hitInfo: اگر true باشد ، hitInfo اطلاعات بیشتری از نقطه ی برخورد را برگشت می دهد.(RaycastHit رو هم ببینید) maxDistance:حداکثر طول cast(پرتاب اشعه برای بررسی برخورد با اجسام دیگر) layerMask : یک Layer mask برای نادیده گرفتن کلایدرهای انتخابی وقتی از یک کپسول cast می کنند. queryTriggerInteraction:تعیین جایی که این دستور (SphereCast) باید با Triggerها برخورد(hit) کند.(تریگر به کلایدرهای قابل عبور می گیم) خروجی: true اگر برخوردی در ناحیه ی کره ای با هر کلایدری داشته باشیم، وگرنه false . مثال : using UnityEngine; using System.Collections;public class ExampleClass : MonoBehaviour { CharacterController charCtrl; void Start() { charCtrl = GetComponent<CharacterController>(); } void Update() { RaycastHit hit; Vector3, ...ادامه مطلب
gameover.blog.ir متد Vector2.Scale دو ورود بردار دو بعدی می گیره و این دو بردار دو بعدی رو در هم ضرب می کنه: public static Vector2 Scale(Vector2 a, Vector2 b); مثال: Vector2 a,b; a=new Vector2(3,4); b=new Vector2(5,7); Debug.Log(Vector2.Scale(a, b)); خروجی:(15.0, 28.0) یعنی مولفه اول بردار a رو در مولفه اول بردار b ضرب کرد و مولفه ی دوم بردار a رو در مولفه دوم بردار b ضرب کرد. 3*5=154*7=28, ...ادامه مطلب
gameover.blog.ir شکل کلی تابع Quateion.AngleAxis به صورت زیر هست: public static Quateion AngleAxis(float angle, Vector3 axis); که چرخشی به اندازه ی زاویه ی angle حول بردار axis ایجاد می کنه.✅مثال:در اینجا حول محور سمت right که همون محور x هست، به اندازه ی mouselook.y درجه در جهت عکس چرخش می دیم(چون منفی هست عکس میشه): transform.localRotation = Quateion.AngleAxis (-mouselook.y, Vector3.right ); , ...ادامه مطلب
gameover.blog.ir به طور پیشفرض دو صدم ثانیه بر فریم هست که ساده کنیم میشه یک پنجاهم یا به عبارت دیگه یعنی در هر یک ثانیه ، 50 بار چک میشه تابع FixedUpdate. Edit|Project settings | Time ,تنظیم,زمان,بررسی,تابع,یونیتیتنظیم,فریم,اجرایی,تابع ...ادامه مطلب
gameover private channelلینک کانال خصوصی گیم اورhttps://t.me/gameoverblogهر پکیجی که توان خریدش ندارید رایگان.اگه مشکل مالی ندارید حمایت کنید.-اعمالی که انجام می دهیم، اگر ذره ای و مثقالی باشد، به خودمان باز می گردد و بازتابش آنها را در زندگی خواهیم دید.زلزال۷او کسی است که (روح) شما را در شب (به هنگ, ...ادامه مطلب
gameover private channelلینک کانال خصوصی گیم اورhttps://t.me/gameoverblogهر پکیجی که توان خریدش ندارید رایگان.اگه مشکل مالی ندارید حمایت کنید.-اعمالی که انجام می دهیم، اگر ذره ای و مثقالی باشد، به خودمان باز می گردد و بازتابش آنها را در زندگی خواهیم دید.زلزال۷او کسی است که (روح) شما را در شب (به هنگ, ...ادامه مطلب
gameover.blog.ir کلاس nonstatic کلاسی است که برای دسترسی به متغییر ها و متد های آن باید از آن یک شی ساخته شود (البت متد ها و متغییر هایی که Access Modifier مناسب داشته باشند که از بیرون قابل دیدن باشد)اما در کلاس static ما می توانیم به متدها و متغییر های آن بدون ساخت شی دسترسی داشته باشیم و اصولاهر, ...ادامه مطلب
gameover.blog.ir به طور پیشفرض دو صدم ثانیه بر فریم هست که ساده کنیم میشه یک پنجاهم یا به عبارت دیگه یعنی در هر یک ثانیه ، 50 بار چک میشه تابع FixedUpdate. , ...ادامه مطلب
gameover.blog.ir <?php $people = array("Peter", "Joe", "Glenn", "Cleveland"); echo current($people) . "<br>"; echo end($people); ?>, ...ادامه مطلب
gameover.blog.ir <?php $my_array = array("red","green","blue","yellow","purple"); shuffle($my_array); print_r($my_array); ?> در مثال فوق یک آرایه با چند مقدار از پیش تعریف شده ساختیم و سپس عناصرش رو با تابع شافل در هم یا به طور تصادفی یا random ساختیم., ...ادامه مطلب
gameover.blog.ir برای اجرای دستورالعمل های دلخواه در یک thread جداگانه بکار میره(یعنی بدون درگیری با اجراهای دیگه و هنگ کردن به طور مخفی و در پس زمینه هر وقت پردازنده وقتش آزاد شد با الگوریتم های زمانبندی سیستم عامل اجرا می شه) مثال از شکل اجرای رویداد DoWork: private void backgroundWorker, ...ادامه مطلب