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

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

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

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

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

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

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

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

کاربرد velocity در یونیتی

يكشنبه, ۱ شهریور ۱۳۹۴، ۱۱:۴۰ ب.ظ

 منبع :gameover.blog.ir


velocity

سرعت حرکت یا شتاب رو تعریف می کنه.سرعت دوربین+کامپوننت انیماتور+سیستم ذره ای پارتیکل(دود و جرقه و ....)+بدنه های فیزیکی جامد و سخت(rigid body)+کامپوننت character controller و .... .


کلاس های مختلفی داره :
Camera.velocity

Get the world-space speed of the camera (Read Only).

Animator.velocity

Gets the avatar velocity for the last evaluated frame.

Particle.velocity

The velocity of the particle.

Rigidbody.velocity

The velocity vector of the rigidbody.

HingeJoint.velocity

The angular velocity of the joint in degrees per second.

Rigidbody2D.velocity

Linear velocity of the rigidbody.

NavMeshAgent.velocity

The current velocity of the NavMeshAgent component.

JointDriveMode.Velocity

Try to reach the specified target velocity.

NavMeshObstacle.velocity

Velocity at which the obstacle moves around the NavMesh.

CharacterController.velocity

The current relative velocity of the Character (see notes).

ParticleCollisionEvent.velocity

Incident velocity at the intersection point of the collision.

ParticleSystem.Particle.velocity

The velocity of the particle.


اما در مورد سوالت که ناقص آوردیش و نگفتی a از چه نوعی هست.اما من می دونم و بهت یاد می دم:
a متغیری از نوع Rigidbody هست که بهتره به صورت public تعریف بشه و یک کامپوننت rigidbody رو بعد از add component به player می کشی می اندازی توی این متغیر a که تعریف کردی.
a.velocity=transform.forward باعث میشه که transform یعنی همین ابجکت جاری (player) به سمت جلو شتاب بگیره یا کمی به سمت جلو بره چون گفتی forward . مثلا اگه می گفتی up می رفت بالا می پرید یا .... البته اگه یک عددی رو هم درش ضرب کنیم این شتاب بیشتر بیشتر خواهد شد. مثالی می زنم تا کاملا درک کنید قضیه رو.
--
این مثال رو حتما برای یونیتی ورژن 5.1 (Final باشه و beta نباشه چون بتا آزمایشی هست.لینک دانلود یونیتی 5.1 رو هم گذاشتم از روی fileniko.com بگیرید که سالمترین لینک ها رو می ذاره)
بریم سر اصل مطلب.

مثال:

یک cube به عنوان player در وسط صحنه بذارید جایی که دوربین اصلی(main camera) بتونه اونو ببینه.

یک plane بذار زیر cube که مکعب نیفته پایین(به عنوان زمین)

به cube یک rigid body بده(Add component)

یک اسکریپت سیشارپ می سازیم به اسم حتما velocity(چون اسم کلاس داخل اسکریپت ما هم velocity هست باید همنام بذاریم که دلخواه است) :
کد
using UnityEngine;
using System.Collections;

public class velocity : MonoBehaviour {
    public Rigidbody rb;
    void Start() {
        rb = GetComponent<Rigidbody>();
    }
    void FixedUpdate() {
        if (Input.GetButtonDown ("Jump") )
            rb.velocity = transform.up*10;//new Vector3(0, 10, 0);
        
    }
}
اسکریپت رو بکشید و روی cube رها کنید.

به اسکریپت دقت کنید. متغیر rb (اسم معنی دار به معنی rigid body) از نوع public است. پس توی inspector در زیر شاخه ی این اسکریپت باید بتونیم بهش ورودی بدیم. پس کامپوننت Rigidbody که add component کردید رو بکشید بندازید توی این کادر.

حالا اجرا کنید و space بزنید. می بینید کاراکتر می پره به بالا.

کجای کد گفتم بپر بالا ؟ اینجا : rb.velocity = transform.up*10 گفتم با سرعت 10 بپر به بالا (up).

به جاش می تونستم مقدار new Vector3(0, 10, 0 رو بدم؟ بلی. چون Vector3 سه پارامتر می گیره x,y,z که من Y رو مقدار دادم پس با شتاپ 10 به بالا jump (پرش) کرد و x (چپ و راست در صورت مقدار مثبت یا منفی به این پارامتر) و z(جلو عقب در صورت مقدار مثبت یا منفی ) رو صفر 0 دادم که فقط به سمت بالا بپره نه جلو نه چپ و راست.
نکته مهم: از velocity بهتره برای حرکت به جلو استفاده نشه مخصوصا زمانی که rigidbody میذاریم ممکنه شتاب زیاد بشه و ابجکت درت حرکت نکنه. فقط برای jump بدک نیست


موافقین ۰ مخالفین ۰ ۹۴/۰۶/۰۱
مدیرکل

نظرات (۱)

خیلی خوب است ممنون اگه میشه بگین کاربرد                    get componen چیست
پاسخ:
دسترسی به کامپوننت اضافه شده به گیم ابجکت.

ارسال نظر

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