«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
Vector3.magnitude و Vector3.normalized در یونیتی :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

Vector3.magnitude و Vector3.normalized در یونیتی

چهارشنبه, ۷ مهر ۱۳۹۵، ۱۲:۲۹ ق.ظ

gameover.blog.ir

فرض کنید ما دو نقطه در فضای سه بعدی داریم(یعنی هر کدومشون xyz دارن)

میایم و این نقطه رو از هم تفریق می کنیم.

یعنی چه؟

یعنی اینکه x2-x1,y2-y1,z2-z1 هر کدوم رو به ترتیب از هم کم می کنیمT،یک نقطه دیگه deltax,deltay,deltaz بدست میاد .

حالا اگه این deltax,deltay,deltaz  رو به توان 2 برسونیم و با هم جمع کنیم و از نتیجش جذر بگیریم فاصله ی بین دو نقطه بدست می آد.

همچنین اگه نقطه ی deltax,deltay,deltaz (این سه تا در یک delta خلاصه یا کپسوله یا پهان سازی میشه) رو نرمالیزه یا normalized کنیم بردار جهت یا حرکت یا direction بدست می یاد.

مثال: (به توضیحات انگلیسی دقت شود)

Vector3 pos1; // start position
Vector3 pos2; // click position
Vector3 moveDistance = 3.0f; // move 3 units in the calculated direction

Vector3 delta = (pos2 - pos1); // delta is the vector difference between pos1 and pos2
float length = delta.magnitude; // distance in a straight line from pos1 to pos2
// direction is delta scaled to a normalized (unit) vector
// A unit vector has all components reduced so that it has a length of 1
Vector3 direction = delta.normalized;

direction.z = 0.0f; // don't move in z direction

// move the object from pos1 towards pos2 by the desired distance
pos1 += direction * moveDistance;
نکته:برای محاسبه فاصله بین دو بردار(vector) از دستور Vector3.Distance هم استفاده میشه.
مثال :
Vector3 a,b;
a=new Vector3(5,-10,100);
b=new Vector3(6,8,1);
Vector3.Distance(a,b);

منبع:
http://farside.ph.utexas.edu/teaching/301/lectures/node28.html
http://gamedev.stackexchange.com/questions/106269/unity-determine-direction-vector3-from-a-point-in-space-and-an-angle-in-eulers

موافقین ۰ مخالفین ۰ ۹۵/۰۷/۰۷
مدیرکل

نظرات (۲)

بیشتر توضیح بدین magnitude چی پس...

 

پاسخ:
magnitude ، فاصله بین مبدا بردار صفر (0و0و0) و نقطه بعدی هست.
اگر به بردار به عنوان یک خط فکر کنی ، مگنیتود برابر با طول و فاصله میشه.
---

با دو بردار a و b و سپس (a-b).
magnitude فاصله بین آنهاست.

این همون کاریه که Vector3.Distance () انجام می ده.

از آنجایی که rigidbody.velocity یک وکتور یا بردار هست،
پسrigidbody.velocity.magnitude تعیین می کنه که ریجید بادی یا جسم از نظر فیزیکی با چه سرعتی حرکت کنه.

ممنون اما چیزی نفهمیدم اصلا!
من تو اموزش های یونیتی دیدم نورمالایز رو جایی استفاده میکنن اما نه برای گرفتن مصافت و یا بین دو نقطه!
برای کار دیگه استفاده میکن که نمیدونم چی بود مثلا اخر بعضی دستورات حرکتی و یا چرخشی نورمالایز رو میزارن ...

پاسخ:
نرمالیزه کردن یعنی رند کردن. اینا میان عدد اعشاری گرد می کنن. که باید کار کنی توی عمل،یه جاهایی متوجه میشی نیاز میشه....
بیا گروهمون بپرس بیشتر
ادرس تو کانال میذارم
@gameoverblog
تلگرام نصب کن رو گوشیت با پرا_کسی بیا

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی