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

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

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

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

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

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

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

بایگانی
پیوندها
منبع:gameover.blog.ir
نکته : برای حالت سه بعدی هست مطلب زیر:
کد js(جاوااسکریپت)
var Xrotatespeed:float=10;
var Yrotatespeed:float=10;

function Start () {

}

function Update () {
    transform.Rotate(new Vector3 (0,Input.GetAxis("Mouse X")*Xrotatespeed,0));     
    //transform.Rotate(new Vector3 (Input.GetAxis("Mouse Y")*Yrotatespeed*-1,0,0));
    print(transform.rotation.eulerAngles); 
} 


اینم کد cs(سیشارپ) اگه اشتباه نکرده باشم اینطوری میشه :

float Xrotatespeed=10f;
float Yrotatespeed=10f;

void Start () {

}

void Update () {
    transform.Rotate(new Vector3 (0,Input.GetAxis("Mouse X")*Xrotatespeed,0));     
    //transform.Rotate(new Vector3 (Input.GetAxis("Mouse Y")*Yrotatespeed*-1,0,0));
    Debug.Log(transform.rotation.eulerAngles); 
}

توضیح:
دلتا تایم رو حذف کردم تا سرعت دست خودم باشه و با x ماس انجام بشه.
ضمنا چرخش بالا و پایین (حول محور X ) رو حذف کردم چون خیلی وقتا لازم نیست و بیشتر کاربر رو گیج می کنه.

توضیحات اضافی برای یادگیری بیشتر و درک سیستم ماوس و مختصات:

ماوس دو تا پارامتر داره x,y
تابع Rotate سه تاپارامتر داره x,y,z که زاویه چرخش رو حول محور دلخواه میدیم به پارامترهاش.

چرخش بالا و پایین (روی محور y ماوس):
اگه بخوایم چرخش به بالا و پایین رو انجام بدیم باید حول محور x بچرخیم یعنی پارامتر اول رو مقدار میدیم و دومی و سومی رو صفر می کنیم. و ضمنا زاویه ی چرخش بالا و پایین رو با حرکت بالا و پایین ماوس انجام میدیم و چون ماوس وقتی بالا می ره y اش تغییر می کنه پس پارامتر اول که قرار بود حول محور x چرخش بشه رو در Mouse Y ضرب کردیم.

چرخش به چپ و راست(روی محور x ماوس):
اگه بخوایم چرخش به چپ و راست رو انجام بدیم باید حول محور y بچرخیم یعنی پارامتر دوم رو مقدار میدیم و اولی و آخری رو صفر می کنیم. و ضمنا زاویه ی چرخش چپ و راست رو با حرکت چپ و راست ماوس انجام میدیم و چون ماوس وقتی چپ وراست می ره x اش تغییر می کنه پس پارامتر دوم که قرار بود حول محور y چرخش بشه رو در Mouse X ضرب کردیم.

راستی: rotation دوربین اصلی رو روی 0و0و0 بذار و اسکریپت رو هم بنداز روی دوربین اصلی


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



روش دوم :

استفاه از خصوصیت rotation هست که از نوع Quaternion هست و با استفاده از تابع اویلر باید مقدار بهش بدیم اینطوری:
void Update () {
transform.rotation =
		Quaternion.Euler(new Vector3(0, Input.mousePosition.x, 0));
	}

به دقت کنید. پارامتر اول و آخر یعی x و z رو صفر گفتیم چون چرخشی حول محور x(میله ای از چپ به راست که چرخش حول آن یعنی چرخش از جلو و عقب)، و چرخشی حول محور Z (میله ای از عقب به جلو که چرخش حول آن یعنی چرخش از پهلو) نداریم.

فقط پارامتر دوم یعنی چرخش حول محور Y(میله ای از پایین به بالا که چرخش حول آن یعنی چرخش به چپ و راست) را با مقدار حرکت ماوس به چپ و راست تنظیم کردیم تا اگر ماوس به چپ حرکت کند دوربین به چپ و اگر به راست حرکت داده شد دوربین به راست نگاه کند.
موافقین ۰ مخالفین ۰ ۹۴/۰۵/۰۴
مدیرکل

نظرات (۱۰)

لطفا این کد رو با سی شارپ بگذارید:)
پاسخ:
نوشتم .اما عجله ای. بررسی کنید ببینید درسته یا نه.
من دارم یه بازی ردست می کنم با دو نفر و یه نفر هم می خوام که کد بازی رو بنویسه اگه کسی حاضر هست اطلاع بده


gmail : amir89315@gmail.com                                    

 ایدی تلگرام : @amirhosein41148


اگه اینها رو نتونستید با شماره : 09336815327   تماس بگیرید 

این بازی کامپیوتری هست و قراره که به بنیاد بازی سازی ارسال بشه و چزو بازی ها به بازار بره
 
۳۰ آذر ۹۸ ، ۱۹:۲۶ محمد حسین

لطفان کدی رو هم که ابجکت رو در یونیتی جلو وعقب میبره هم بزا رید

میشه کد بالا و پایین شدن با موس بزاری و بنویسی با توضیح متوجه نمیشم

لطفا کد جهت های پایین و بالا هم بزارید

ممنون میشم

پاسخ:
یونیتی ندارم مدتی لپتاپم ضعیفه یونیتی جدید نصب نمیشه
بیا گروه تلگرام  تو کانال گذاشتم لینکو
@gameoverblog
---

من نمیدونم برای ورژن چنده چون در هر ورژن کد ها تغییر میکنند!

پاسخ:
کار میده ورژن Unity.Professional.5.2.0.f3.x64 من کار می کنم ورژن های جدید فعلا باگ داره

کد  جلو عقب که خیلی وقته گفتیم

تو کادر جستجو بزن کد حرکت کاراکتر یا اسکریپت حرکت پلیر در یونیتی

خیلی ممنون  نمی دونم چطوری تشکر کنم

۱۶ ارديبهشت ۰۱ ، ۱۵:۳۶ سبحان رحمانی

سلام میگم میشنه فایل دانلودش رو بزارین سیشارب ممنون می شم اگه این کار رو بکنید من همیشه از سایتون خوشم میومد

داش عالیی دمت گرم منم با یونیتی ورژن 5.6.7 کار میکنم 
اگه یه موقع تو یه جاهایی گیر کردیم اموزش های دیگه داری و اینکه درخواست بدیم برامون اموزش ها رو قرار میدی.
 خیلی دوست دارم یکی باشه هر جایی رو بلد نبودم بهم یاد بده علاقه خاصی به این صنعت دارم و تازه کار هستم

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

پاسخ:
من فعلا سیستمم ضعیفه

ارسال نظر

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