کانال بازی سازی تلگرام
کد چرخش کاراکتر(نگاه کردن دوربین به جهت ماوس) با ماوس در یونیتی برای حالت سه بعدی چرخش دوربین به چپ و راست :: آموزش ساخت بازی اندروید+پکیج های تخصصی

آموزش ساخت بازی اندروید+پکیج های تخصصی

در گیم اور، همیشه حق با مشتری است و در صورت نارضایی با هم به توافق می رسیم.
--
تمام اعمالی که انجام می دهیم، حتی اگر ذره ای و مثقالی باشد، به خودمان باز می گردد و بازتابش آنها را در زندگی خواهیم دید. زلزال ۷
او کسی است که (روح) شما را در شب (به هنگام خواب) میگیرد; و از آنچه در روز کرده ‏اید، با خبر است; سپس در روز شما را (از خواب) برمیانگیزد; و (این وضع همچنان ادامه مییابد) تا سرآمد معینی فرا رسد; سپس بازگشت شما به سوی اوست; و سپس شما را از آنچه عمل میکردید، با خبر میسازد. انعام ۶۰
دلها به یاد خدا آرام میگیرد. رعد آیه ۲۷
بدانید زندگی دنیا تنها بازی و سرگرمی، و تجمل پرستی و تفاخر در میان شما و افزون طلبی در اموال و فرزندان است . حدید آیه ۲۰
آن خدایی که آدمی را از خون بسته (که تحول نطفه است) بیافرید.
بخوان و (بدان که) پروردگار تو کریم‌ترین کریمان عالم است.
آن خدایی که بشر را علم نوشتن به قلم آموخت.
به آدمی آنچه را که نمی‌دانست تعلیم داد.
راستی که انسان سرکش و مغرور می‌شود.
چون که خود را در غنا و دارایی ببیند. علق ۲- ۷
این زندگانی چند روزه دنیا افسوس و بازیچه‌ای بیش نیست، عنکبوت ۶۴
در روی زمین به تکبر راه مرو که نمی توانی زمین را بشکافی و هرگز قامتت به بلندای کوهها نمی رسد. اسراء ۳۷
در آنچه خداوند بر تو بخشیده است، سرای آخرت را بجوی و سهم خود را از دنیا فراموش مکن و همانگونه که خدا به تو نیکی کرده است نیکی کن و هرگز فساد در زمین منما که خدا مفسدان را دوست ندارد. قصص ۷۷
و هرگاه نعمت و رحمتی به انسان بچشانیم و سپس آن را از او برگیریم او مأیوس و نومید میشود و به کفران و ناسپاسی بر میخیزد. هود ۹
بندگان مرا آگاه ساز که من بسیار آمرزنده و مهربانم. حجر ۴۹
از رحمت خدا نا امید مباشید که جز کافر هیچ کس از رحمت خدا نا امید نیست. یوسف ۸۷
پس به یاد من باشید تا به یاد شما باشم. بقره ۱۵۲
زندگانی دنیا چیزی جز متاع فریبنده نیست . آل عمران ۱۸۵
از آنچه به شما روزی داده ایم پیش از آنکه روزی فرا رسد که نه معامله ای وجود دارد و نه دوستی و شفاعت ، انفاق کنید. بقره ٢۴۵
بسا چیزی را ناخوش داشته باشید که آن به سود شماست و بسا چیزی را دوست داشته باشید که به زیان شماست، و خدا میداند و شما نمیدانید. بقره ۲۱۶
ما آیات (خود) را برای شما بیان کردیم شاید اندیشه کنید...حدید ۱۷

پیوندهای روزانه
پیوندها
منبع: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(میله ای از پایین به بالا که چرخش حول آن یعنی چرخش به چپ و راست) را با مقدار حرکت ماوس به چپ و راست تنظیم کردیم تا اگر ماوس به چپ حرکت کند دوربین به چپ و اگر به راست حرکت داده شد دوربین به راست نگاه کند.
موافقین ۰ مخالفین ۰ ۹۴/۰۵/۰۴
مدیرکل

نظرات (۱)

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

ارسال نظر

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