gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
شامل ۲۰ سلاح با کیفیت کم حجم لوپولیگان
سلاح های جنگ جهانی دوم
gameover.blog.ir
لینک:
(چند ثانیه قبلش صبر کنید بعد رد تبلیغ بزنید)
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
این پکیج دارای گیم پلی عالی برای ساخت بازی دو بعدی پلتفرم هست. و همه چیز اماده تقریبا.
قیمت اصلیش خیلی گرونه.
ولی توی گیم اور رایگانه. اعضای کانال @gameoverblog رو ببرید بالا لطفا
gameover.blog.ir
gameover.blog.ir
NEW!Unity 5.0 support
o Supports both 2D and 3D phyiscs
o Improved tilemap editor
o Beginners whack-a-mole game tutorial
o Brand new UI system
o Platform specific sprite collections
o Non-rectangular and sliced sprites
o Pixel perfect rendering
o And loads more features and improvements
gameover.blog.ir
gameover.blog.ir
Control Freak The Ultimate Virtual Controller for Unity Mobile 0.zip
Easy Touch v3.1.1.zip
Easy Touch v4.1.0 Touchscreen Virtual Controls.zip
Easy Touch v5.0.8.rar
Unity Asset - Control Freak 2 v2.0.1[AKD][CTRC].rar
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir-
gameover.blog.ir
این پکیج برای این هست که وقتی کاراکتر انیمیشن داره،حرکات ریشه ای هم بشه انجام داد مثلا طرف داره تیر می زنه،بعدش یک کاری کنیم بچرخه و تیر بزنه به نقطه ی دلخواه یا خم بشه و تیر بزنه. یا مثلا زیر پاش یک شیب هست، مچ پاش خم میشه هم زاویه با سطحی که زیر پاش هست در میاد.یا مثلا کاراکتر از کتار دیواری داره رد میشه دستشو که می زنه به دیوار مچ دستش می چرخه هم زاویه با دیوار خم میشه.(خود پکیج نیاز به اموزش داره ولی ما فقط لینک دانلودش رو گذاشتیم)
40 مگ
برای دانلود به لینک زیر برید و پس از چند ثانیه رد تبلیغ رو بزنید:
gameover.blog.ir
gameover.blog.ir
gameover.bog.ir
gameover.blog.ir
gameober.blog.ir
private Vector3 ThrowBomb(Transform source, Vector3 target, float angle)
{
Vector3 direction = target - source.position; // get target direction
float h = direction.y; // get height difference
direction.y = 0; // remove height
float distance = direction.magnitude; // get horizontal distance
float a = angle * Mathf.Deg2Rad; // Convert angle to radians
direction.y = distance * Mathf.Tan(a); // Set direction to elevation angle
distance += h / Mathf.Tan(a); // Correction for small height differences
float velocity = Mathf.Sqrt(distance * Physics.gravity.magnitude / Mathf.Sin(2 * a));
return velocity * direction.normalized;
}
:مثال
Rigidbody B = Instantiate(Bomb, transform.position, transform.rotation) as Rigidbody;
B.velocity = ThrowBomb(transform , Target.position,15);
Target = هدف transform = موقعیت خود Angle = 15 = یعنی مقدار زاویه که معمولا این عدد خوب جواب میده
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void FixedUpdate() { rigidbody.AddRelativeForce(Vector3.forward * 10); } }
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
tga چیست؟ یک مدل فایل تصویری هست که در برخی پکیج های یونیتی یا جاهای دیگه ممکنه باهاش مواجه بشید.
تبدیل آنلاین فایل TGA به فرمت های دیگه مثل jpg یا png یا غیره:
http://www.filezigzag.com/tga-png-en.aspx
http://image.online-convert.com/convert-to-png
تبدیل به png:
gameover.blog.ir
gameover.blog.ir
گاهی به جای غرق شدن در ریاضیات quaternion کواترنیون از چرخش های اویلری Euler استفاده می کنیم.
استفاده از تابع اویلر به جای محاسبات ریاضی عمیق تر،باعث پردازش کمتری خواهد شد که این کار باعث مصرف کمتر منابع مثل پردازنده و همچنین بهینه سازی بازی شما می شود.
این تابع (Euler) سه مولفه xyz را دریافت کرده و چرخش حول این سه محور را انجام میدهد.
مثال 1 :
برای دستیابی به زوایای اویلر داریم:
Debug.Log(transform.eulerAngles);
مثال 2 :
برای چرخش اویلری داریم:
transform.eulerAngles = new Vector3(30,0,0);
مثال 3 :
چرخش گیم ابجکت از جلو،عقب(حول محور x که از چپ به راست هست)، با حرکت ماس به بالا و پایین(دقت کنید y ماوس تغییر می کنه):
transform.eulerAngles = new Vector3(mouseY * 0.1f,0,0);
void Update () { float mouseX = Input.GetAxis("Mouse X"); Debug.Log(mouseX); transform.eulerAngles = new Vector3(0, mouseX, 0); }
gameover.blog.ir
مثال1:
void Update () { Vector3 mousePosition = Input.mousePosition; Debug.Log(mousePosition); }
مثال 2 :
void Update () { Vector3 mousePosition = Input.mousePosition; float mouseX = mousePosition.x; float mouseY = mousePosition.y; }
gameover.blog.ir
void Start () {
transform.position = Vector3.zero;
}
void Start () {
transform.position = new Vector3(0,0,0);
}
gameover.blog.ir
void Start () {
Rigidbody rb = GetComponent<Rigidbody>();
}
مثال:
استفاده از متد AddForce از Rigidbody برای پرش به بالا:
void Start () {
Rigidbody rb = GetComponent<Rigidbody>();
// Add a force to the Rigidbody.
rb.AddForce(Vector3.up * 10f);
}
gameover.blog.ir
void UpdateCollider(){ gameObject.GetComponent<BoxCollider2D>().size = gameObject.GetComponent<SpriteRenderer>().sprite.bounds.size; gameObject.GetComponent<BoxCollider2D>().offset = gameObject.GetComponent<SpriteRenderer>().sprite.bounds.center; } Update(){ if(currentSprite != GetComponent<SpriteRenderer>().sprite){ currentSprite = GetComponent<SpriteRenderer>().sprite; UpdateCollider(); } }
منبع:
improxgames.comgameover.blog.ir
gameObject.GetComponent<BoxCollider2D>().size = gameObject.GetComponent<SpriteRenderer>().sprite.bounds.size;
gameover.blog.ir
using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using UnityEngine.EventSystems; using System.Collections; //author:sajjad3011 public class select : MonoBehaviour { public GameObject character1,character2,character3; public Button button1,button2,button3; void Start () { button1.onClick.AddListener(()=>{ character1.SetActive(true); character2.SetActive(false); character3.SetActive(false); } ); button2.onClick.AddListener(()=>{ character1.SetActive(false); character2.SetActive(true); character3.SetActive(false); } ); button3.onClick.AddListener(()=>{ character1.SetActive(false); character2.SetActive(false); character3.SetActive(true); } ); }//start }
gameover.blog.ir
کلیپی از تنظیمات کیفیت در یونیتی
http://s8.picofile.com/file/8268879676/Unity3D_Quality_Settings.mov.html
gameover.blog.ir
مترجم:گیم اور
Quad شبیه Plane هست با این تفاوت که لبه های کواد فقط یک واحد طولانی تر از لبه های پلین هستن و سطح آن در راستای xy از پلین در فضای مختصات محلی است.
همچنین quad به دو مثلث تقسیم می شود اما Plane به 200 مثلث.
quad برای زمانی خوب هست که ابجکت صحنه باید خیلی ساده انتخاب بشه مثل زمانیکه صفحه نمایش بخواد یک image یا movie رو نمایش بده.
GUI ساده و اطلاعات نمایشی رو می تونیم با quad پیاده سازی کنیم مثل particle ها(سیستم پارتیکل) ، sprite ها و image های "impostor" که برای اشیای جامد(solid object) مشاهده شده از دور جابجا می شوند.
gameover.blog.ir
message در اصلاح زبان های برنامه نویسی رویداد گرا و شی گرا به معنی توابعی هست که در صورت وقوع رخدادی اتفاق می افتند و در اصلاح به این رویداد ها Event یا Message گفته می شه که توسط توابعی مثل SendMessage یا غیره به صورت اختیاری یا اتوماتیک و در پشت پرده توابع عضو یک کلاس ممکن هست که اجرا بشه.
به عنوان مثال کامپونت RigidBody در یونیتی دارای سه message هست :
وقتی اجرا می شود که کلایدر/ریجید بادی یک گیم ابجکت،کلایدر/ریجید بادی گیم ابجکت دیگه رو لمس می کنه یا در اصلاح برخوردی بین هر یک از کلایدرهای دلخواه دو گیم ابجکت رخ میده. |
|
OnCollisionExit | عکس حالت بالاست،یعنی به محض خروج از برخورد دو گیم ابجکت این فانکشن یا در اصلاح Event یا message رخ میده. |
OnCollisionStay | تا زمانی که کلایدرهای دو گیم ابجکت با هم برخورد دارند این message مدام اجرا میشه.یکی از کاربردهای این میسیج زمانی هست که دو گیم ابجکت داریم و یکی از اون ها isTrigger هست یعنی با وجود اینکه کلایدر داره گیم ابجکت دیگه کلایدر دار می تونه از کنارش یا داخلش رد بشه ولی برخورد تشخیص داده میشه. مثل زمانی که مثلا کاراکتر می خواد در حالت دو بعدی کنار نردبان باشه ولی برخورد رو تشخیص بدیم و مثلا یک شی بالابر مخفی زیر پای کاراکتر در لحظه ای وقوع این رویداد ایجاد کنیم که اگه مثلا فلش بالا زدیم بره بالا |
gameover.blog.ir
ترجمه: گیم اور
AddExplosionForce | یک نیرو را با کامپوننت ریجید بادی برای شبیه سازی آثار انفجار بکار می گیرد.این نیروی انفجار با دور شدن از ریجید بادی به طور خطی افت خواهد کرد. |
AddForce | یک نیرو را به ریجید بادی اضافه می کنه.نیروی رانش در راستای بردار(مثلا بردار که x=1 و y=0 و z=0 باشه یعنی در راستای محور x . البته بعدا بیشتر توضیح میدیم) |
AddForceAtPosition | برای بکار بستن نیرو در یک موقعیت بکار می رود.در نتیجه باعث ایجاد یک گشتاور و نیرو روی گیم ابجکت میشه. |
AddRelativeForce | باعث ایجاد یک نیروی ریجید بادی نسبت به سیستم مختصات آن می شود. |
AddRelativeTorque | یک نیروی چرخشی را برای ریجید بادی نسبت به سیستم مختصات آن ایجاد می کند. |
AddTorque | یک نیروی چرخشی رو ایجاد می کنه. |
ClosestPointOnBounds | نزدیک ترین نقطه به جعبه محیطی متصل به کلایدرها را بر می گرداند. |
GetPointVelocity | سرعت ریجید بادی روی نقطه ی worldPoint در فضای جهانی را بر می گرداند. |
GetRelativePointVelocity | سرعت نسبی ریجید بادی در نقطه ی relativePoint را بر می گرداند. |
IsSleeping | بررسی می کند آیا ریجید بادی به خواب رفته است یا نه؟ true/false خروجی |
MovePosition | برای حرکت ریجید بادی به موقعیت دلخواه بکار می رود. |
MoveRotation | برای چرخش ریجید بادی به اندازه ی دلخواه بکار میره. |
SetDensity | جرم مبتنی بر کلایدرهای متصل به ریجید بادی را با فرض یک چگالی ثابت تنظیم می کند. |
Sleep | نیرویی روی ریجید بادی ایجاد می کند تا در حداقل یک فریم sleep کند(به خواب رود) |
SweepTest | بررسی می کند اگر ریجید بادی با چیزی برخورد کرد،آیا آن از میان صحنه عبور کرده بود یا نه. |
SweepTestAll | مثل SweepTest است اما همه hit یا برخوردها را بر می گرداند. |
WakeUp | به ریجید بادی دستور wake up یا بیدار شدن می دهد. |
gameover.blog.ir
ترجمه: گیم اور
این متغیر ها در inspector مشاهده میشه(بعد از اختصاص کامپوننت ریجید بادی به گیم ابجکت دلخواه)
angularDrag | درگ زاویه ای گیم ابجکت |
angularVelocity | بردار شتاب زاویه ای از ریجید بادی |
centerOfMass | مرکز ثقل نسبت به لولای ترنسفورم گیم ابجکت |
collisionDetectionMode | مد تشخیص کالیژن ریجید بادی |
constraints | میزان درجه ی آزادی مجاز برای شبیه سازی این ریجید بادی را کنترل می کند. |
detectCollisions | کالیژن دیتکشن فعال باشد یا خیر؟ (به طور پیشفرض فعال است) |
drag | درگ گیم ابجکت |
freezeRotation | قفل گذاری تاثیر فیزیک روی چرخش گیم ابجکت حول محورهای xyz |
inertiaTensor | تنسور اینرسی مورب جرم نسبت به مرکز جرم |
inertiaTensorRotation | چرخش تانسور اینرسی |
interpolation | باعث نرمی اثر فیزیک در حال اجرا در یک نرخ فریم ثابت می شود. |
isKinematic | چگونگی تاثیرات فیزیک بر ریجید بادی را کنترل می کند |
mass | جرم ریجید بادی |
maxAngularVelocity |
حداکثر سرعت زاویه ای از ریجید بادی (پیش فرض 7) محدوده {0، بی نهایت}. |
position | موقعیت ریجید بادی |
rotation | چرخش ریجید بادی |
sleepAngularVelocity | سرعت زاویه ای که ابجکت ها استفاده می کنند تا به خواب روند (پیش فرض 0.14) محدوده {0، بی نهایت}. |
sleepVelocity | سرعت خطی که ابجکت ها استفاده می کنند تا به خواب روند (پیش فرض 0.14) محدوده {0، بی نهایت}. |
solverIterationCount | تعداد تکرار یا از سرگیری های solver در ریجید بادی |
useConeFriction | رانش اصکاک مخروطی برای استفاده ی ریجید بادی |
useGravity | کنترل می کند آیا جاذبه بر ریجید بادی تاثیر بگذارد یا خیر. |
velocity | بردار سرعت یا شتاب ریجید بادی_شتاب روی محور xyz |
worldCenterOfMass | مرکز جرم ریجید بادی در فضای جهانی(فقط خواندنی_غیر قابل ویرایش) |
آموزش PlayerPrefs در یونیتی
gameover.blog.ir
int emtiaz=Playerprefs.GetInt("score")-200 PlayerPrefs.SetInt("score",emtiaz); Playerprefs.Save();
gameover.blog.ir
چطوری با playerPrefs امتیازات برتر رو بخونیم و high score table یا جدول امتیازات برتر رو برای ثبت امتیاز آنلاین بسازیم؟
باید امتیازات مرتب شده رو که با php توی فایل txt ذخیره کردین رو بخونید بعدش توی آرایه ذخیره کنید.
سپس امتیاز خودتون رو با تمام امتیاز ها مقایسه کنید .
اگه تکراری بود کاری انجام نمیشه.
اگر تکراری نبود و از یکی از امتیازها بیشتر بود،کمترین امتیاز رو از لیست حذف کرده و سپس امتیاز شما به لیست اضافه می کنید.
در نهایت لیست مرتب شده رو با WWW می گیرید و در یک ui text نمایش میدید.
به
همین روشی که انلاین هست،افلاین هم همینطوری هست مثل بازی های رکوردی. فقط
توی افلاین فرقش اینه که راحت تره و فق یک مقایسه با امتیاز قبلی
خودتون(رکورد قبلیتون) انجام میشه.
اولین بار هم می تونید یک عدد پیشفرض رو به عنوان امتیاز پیشفرض ذخیره کنید defaultRecord
برای اینکه چک کنید متغیر شما وجود داره یا نه هم از این دستور استفاده کنید:
if(PlayerPrefs.HasKey("key")) //boolean { دستورات خواندن امتیاز با پلیر پریفرنسز }
gameover.blog.ir
gameover.blog.ir
سوال)تو یونیتی وقتی شی رو مثل اسلحه ساده یا حتی گاهی وقتا cube رو به دوربین نزدیک میکنم قسمت خیلی نزدیک به دوربین از بین میره .یه جورایی پشتش معلومه باگ میشه ....چی باس بهش بدم تا کامل باشه؟پاسخ)برای تست،با گزینه های نزدیک(near) و دور(far) از Clipping Planes(پلن های برش) و همینطور field of view از کامپوننت Camera از دوربین انتخاب شده،در inspector بازی کنید.
عدم اجرای کلیک روی باتن در یونیتی/چرا کلیک روی باتن عمل نمی کند؟چرا کلیک روی دکمه عمل نمی کند؟چرا کلیک روی دکمه کار نمی کند؟
چرا کلیک روی باتن کار نمی کند؟
http://afradstudio.ir/2016/09/05/1938/
http://p30download.com/fa/entry/55956/
صدها حالت حرکتی (animation) مانند راه رفتن، دویدن، پریدن، رقصیدن، حرکات اکشن، مبارزه و ... را می توانید با یک کلیک به مدل خود نسبت دهید.
gameover.blog.ir
فقط ۲۶ کیلوبایت(نکته: dot net framework هم باید نصب باشه)
http://www.mediafire.com/file/cfy4tbiz2h7fi6s/SpriteSheetPacker.rar
از این ابزار برای جاسازی دسته ای از عکس ها در یک عکس استفاده میشه.
مخصوصا زمانیکه بخوایم چند عکس رو داخل یک عکس بذاریم و فضای خالی تقریبا
کم تر بشه و از اون عکس به عنوان texture یا غیره بخوایم برای uv map یا …
استفاده کنیم.
بعد از انزیپ،فایل Sprite Sheet Packer رو اجرا کرده و عکس ها رو add کنید .
سپس روی دکمه ی جلوی image file بزنید و یک مسیر و اسم دلخواه برای ذخیره خروجی بدید.
سپس build کنید.
منبع:
https://spritesheetpacker.codeplex.com