gameover.blog.ir
gameover.blog.ir
using UnityEngine; public class Timer : MonoBehaviour { void Start() { Destroy (gameObject, 3f); } }منبع:
gameover.blog.ir
از این کلمه برای نادیده گرفتن یک عضو موجود در یونیتی استفاده می شود. یا بعبارت دیگر تعریف یک نوع جدید با اینکه از قبل وجود دارد.
مثال :
در کد زیر از این کلمه برای نادیده گرفتن عضو transform به ارث برده شده از MonoBehaviour استفاده می شود.
private new Transform transform;
gameover.blog.ir
Django is a Python web framework
یک فریمورک تحت وب پایثان هست.
برای کار با آن نیاز هست که python 3.5 رو دانلود و نصب کنید:
https://www.python.org/downloads/
بقیه رو بدو:gameover.blog.ir
gameover.blog.ir
GameObject[] myArray; myArray= GameObject.FindGameObjectsWithTag("tagDelkhah");
دقت کنید که دستور بالا فقط گیم ابجکت های اکتیو رو چک می کنه.
اگه بخواید تمام گیم ابجکت ها چه فعال و چه غیرفعال رو لیست کنید از دستور زیر کمک بگیرید بعدش با دستور foreach یا .... تگ(tag) رو چک کنید:
GameObject[] allObjects =Resources.FindObjectsOfTypeAll<GameObject>();
gameover.blog.ir
زبان اصلی
لینک دانلود:
gameover.blog.ir
زبان اصلی
لینک مسقیم:
http://s6.picofile.com/file/8265880434/Melee_Combat_with_Unity_5.mp4.html
Melee Combat with Unity 5.mp4
gameover.blog.ir
Edit > Preferences > External Tools
gameover.blog.ir
Basic Artificial Intelligence for a Non Player Character with Unity 5
به کاراکتر غیر پلیر یا دشمن در اصلاح بازی سازی می گن NPC یا Non Player Character.
این فیلم در مورد هوش مصنوعی برای دشمن در یونیتی 5 هست.
زبان:انگلیسی
لینک مستقیم:
نکته:
این فیلم ها جنبه کلی دارند و انتظار نداشته باشید برنامه نویسی تکمیل باشه یا دچار خطا نشید.ما فیلمایی که نیاز دارید می ذاریم. اما صرفا هر فیلمی رو بررسی نمی کنیم.چون هوش مبحث مهمی هست هر فیلمی در یوتیوب هست بگید لینک مستقیم بذاریم.
ولی قبلش این فیلم فارسی هم ببینید:
هوش(دیدن پلیر توسط دشمن بر حسب بینایی با استفاده از ray یا پرتاب اشعه):
gameover.blog.ir
برای اپتیمایز کردن و بهینه سازی معمولا بهتر هست فرمت تکستچرها jpg باشه و بقیه دیگه به uv map شما بستگی داره که چطوری مدل رو در نرم افزار blender یا maya یا غیره یو وی می گیرید تا دقیقا قسمت دلخواهش روی مدل بیفته.
اما معمولا فایل های png حجمشون رو نمی شه زیاد کم کرد به خاطر همین بهتره jpg باشه تکستچر که وقتی در فتوشاپ دارید save می کنید size کمتر بتونه بشه توی تنظیمات.
موفق باشید.
gameover.blog.ir
با این اسکریپت وقتی اشیای با تگ خاص که توی کد نسبت میدید و بیرون هم باید بهشون تگ توی کد رو بدید،بررس می شن و اگه پلیر فاصلش ازشون تا حد دلخواه تعریف شده توی اسکریپت بیشتر بشه غیر فعال میشن. و اگه پلیر فاصلش از اون حد کمتر شد فعال میشن.
این تکنیک و این کد یکی از بهترین کدهایی هست که بازی سازان حرفه ای ازش بهره می گیرند و خیلی کاربردی هست.
سازنده:گیم اور
//disableFarGameObjects.cs //gameover.blog.ir
//Author:Sajjad3011
using UnityEngine; using System.Collections; public class disableFarGameObjects : MonoBehaviour { public float faseleDekhah = 10; void Update () { GameObject[] allObjects =Resources.FindObjectsOfTypeAll<GameObject>(); Debug.Log(allObjects.Length); foreach(GameObject g in allObjects) { if (g.tag == "tagDelkhah") { float distance = Vector3.Distance(g.transform.position , this. transform. position); if(distance <faseleDekhah) { g.SetActive(true); } else { g.SetActive(false); } } } } }
gameover.blog.ir
پارت یک
http://www.aparat.com/v/Tix2l
پارت دو
http://www.aparat.com/v/6ERs2
پارت سه
http://www.aparat.com/v/gRdXU
پارت چهار
http://www.aparat.com/v/SMsW7
gameover.blog.ir
منبع :
https://github.com/Applicasa/Sample-App-Unity/blob/master/Assets/Applicasa/PushNotification.cs
gameover.blog.ir
با این نرم افزار سبک خیلی راحت فایل obj هر مدلی می خواید Drag کنید روش.
یه قسمت داره optimization برید و یک نوار داره مدل رو بکشید سمت چپ و سمت راست هم نتیجه رو ببینید.
بعدش save as کنید با obj و تمام
لینک سالم دانلود تست شده:
بحث آشغال(garbage) و اشاره گرهای سرگردان رو اگه بدونید اینو درک می کنید.
هدیه گیم اور به عافراد و شما
فقط از تبلیغات بالای هر دو سایت لطفا دیدن کنید هر روز یک بار و به دوستان هم بگید. تنها حامی ما شما هستید. بازدید از تبلیغات بالا باعث میشه یک درصد هم در ذهن مشتری تبلیغ بشه که مطلب رو ببینه و خوب ما فعلا منبع درآمد خاصی نداریم و این یک حقیقته. اگر می خواید با انگیزه ادامه بدیم و مطالب بهتری بذاریم هر روز از تبلیغات جدید بالای وبلاگ و سایت بازدید کنید. با تشکر از همه دوستان.
حجم : حدود 300 مگ به صورت پارت پارت
پس از دانلود فایل زیپ رو باز کنید داخلش یک فایل متنی هست که لینک های
دانلود رو می تونید کپی کنید توی مرورگر و با استفاده از اونها آموزش ها رو
به صورت پارت پارت بگیرید
آموزش های سیشارپ در یونیتی.ترجمه و ادیت قسمت های مهم کتاب فوق به صورت فیلم فارسی
این پک ترجمه تقریبا بخش های مهم تا 400 صفحه اول از کتاب سیشارپ در یونیتی نوشته alex okita هست که به صورت فیلم فارسی ترجمه کردیم.
gameover.bog.ir
این مجموعه شامل پکیج های زیر است:
Apex Path v2.2.1.unitypackage
Easy_Traffic2.0
Intelligent Race Driver System
Advanced AI Pro 6.01(.unitypackage
BusyWorldAI.unitypackage
PathfindingProject.zip
Unity_Asset_-_Paragon_Shooter_AI_v1.1
لینک دانلود تمام پک های فوق در یک فایل zip(حجم سیصد و خورده ای)
gameover.blog.ir
//author:sajjad3011
Vector3 pos; void Start () { InvokeRepeating("randomEnemyGenerate", 60.0f,1.0f);//call function f1() every 1 minute } void randomEnemyGenerate(){ x = Random.Range(-25, 26); y = 0; z = Random.Range(-25, 26); pos = new Vector3(x, y, z); Instantiate(prefabEnemy, pos, prefabEnemy.rotation); }
gameover.blog.ir
public Material skyMat; RenderSettings.skybox=skyMat;
gameover.blog.ir
نکته :دقت کنید تابعی Lerp از کلاس Vector3 سه ورودی داره که دو تای اول وکتور3 هست و آخری float که توی وبلاگ گفتیم.
اما تابع Lerp از کلاس mathf دو پارامتر اولیش از نوع float هست و آخری هم float که در زیر توضیح میدم:
برای تغییر زاویه بین محدوده ی دو عدد با سرعت نرم تعیین شده بکار میره با سرعت دلخواه.
مثال: تغییر از زاویه صفر به 180.
mathf. Lerp(0, 180,speed*(time.deltatime));
اینم ببینید:
gameover.bog.ir
رویداد OnApplicationFocus و OnApplicationPause و OnApplicationQuit در یونیتی به ترتیب موقع باز کردن پنجره ی بازی،خروج موقت یا توقف فعلی بازی، و خروج کامل از بازی رخ میدهند.
سه مثال :
1)
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public bool paused; void OnGUI() { if (paused) GUI.Label(new Rect(100, 100, 50, 30), "Game paused"); } void OnApplicationFocus(bool focusStatus) { paused = focusStatus; } }
2)
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public bool paused; void OnGUI() { if (paused) GUI.Label(new Rect(100, 100, 50, 30), "Game paused"); } void OnApplicationPause(bool pauseStatus) { paused = pauseStatus; } }
3)
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void OnApplicationQuit() { PlayerPrefs.Save(); } }
gameover.blog.ir
لینک مستقیم:
http://afradstudio.ir/unity/packages/ai/Advanced AI Pro 6.01(afraStudio.ir).unitypackage
void Start () { InvokeRepeating("f1", 1.0f,1.0f);//call function f1() every 1 second }
void f1() { i++; if (i > 3) return;//exit function switch (i) { case 1: swithEnemyList[0].SetActive(true); break; case 2: swithEnemyList[1].SetActive(true); break; case 3: swithEnemyList[2].SetActive(true); break; default: break; } }//f1
gameover.blog.ir
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Awake() { DontDestroyOnLoad(transform.gameObject); } }
لطفا سوالات در گروه یونیتی گیم اور که در کانال gameoverblog متعاقبا اعلام می گردد بپرسید.
به لینک زیر برید و پ از چند ثانیه رد تبلیغ رو بزنید :
اینم آموزش کامل برای یونیتی 5.3.4p3:
public float lifeTime=100f; void Update(){ if((lifeTime-Time.fixedDeltaTime)<=0){ gameOver(); } void gameOver(){ Application.LoadLevel("esmeMarhaleAvval"); } }
gameover.blog.ir
این دستور برای لود محله بکار می ره و فرقش با Application.LoadLevel اینه که سربار کمتری داره و مراحل لودینگ(بارگذاری) رو در پس زمینه محاسبه می کنه و سپس عمل نمایش موارد لود شده رو یکباره انجام میده.
مثال:
دقت کنید که در پنجره build settings(کلید میانبر ctrl+shift+b)، مرحله ها رو add کنید قبلش(مثل l1 و ...)
کد زیر باعث میشه در شروع مرحله،بعد از انجام محاسبات مرحله ی l1 لود بشه و بریم بهش.
using UnityEngine; using System.Collections; public class loadasync : MonoBehaviour { IEnumerator Start() { AsyncOperation async = Application.LoadLevelAsync("l1"); yield return async; Debug.Log("Loading complete"); } }
ri.golb.revoemag
--
برای بدست آورین فریم جای انیمیشن داریم:
animation["اسم انیمیشن"].normalizedTime
فریم اول صفر و فریم آخر یک هست.
شماره فریم هم عددی اعشاری است.
مثال: اگر فریم 9 بود انیمیشن تیر اندازی با نام shoot اجرا بشه:
if(animation["Aim"].normalizedTime >= .9) animation.Play("Shoot");
gameover.blog.ir
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public GameObject prefab; void Start() { Vector3 position = new Vector3(Random.Range(-10.0F, 10.0F), 0, Random.Range(-10.0F, 10.0F)); Instantiate(prefab, position, Quaternion.identity) as GameObject; } }
public scriptName myScript; void Start(){ myScript.enabled= false;//true/false }
// ... Create 2D array of strings. string[,] array = new string[,]
GameObject[,] array = new GameObject[,]
gameover.blog.ir
به لینک زیر برید بع از چند ثانیه رد تبلیغ یا ads skip بزنید:gameover.blog.ir
به لینک زیر برید و بعد از چند ثانیه رد تبلیغ یا skip ads رو بزنید
Vector3 direction = target.transform.position - this.transform.position;
transform.rotation=Quaternion.Euler(0,direction.y,0);
void Update(){ if (Input.GetKey (KeyCode.UpArrow)) transform.position += transform.forward * speed; if (Input.GetKey (KeyCode.DownArrow)) transform.position -= transform.forward * speed; if (Input.GetKey (KeyCode.RightArrow)) transform.position += transform.right * speed; if (Input.GetKey (KeyCode.LeftArrow)) transform.position -= transform.right * speed; }
gameover.blog.ir
ولو سیتی خصوصیت هست.
addForce تابع هست،
یه موقع شتاب رو می خوای بدست بیاری با ولوسیتی بدست میاری.
تنظیم هم با همون ممکنه.
AddForce بیشتر برای زمانی استفاده می شه که بخوایم تیریا گلوله bullet و ... بزنیم یا نیروی پرتاب چند متری در راستای دلخواه رو انجام بدیم.
و اسمش هم ویژه همون کاره تمیز تره اما با هر دوش می شه برنامه نویسی کرد.
مثال:پرتاب تیر ده متر جلوتر:
rigidbody.AddForce(Vector3.forward * 10);
rigidbody.AddForce(Vector3.up * 10);
rigidbody.velocity = new Vector3(0, 10, 0);محور up یعنی y برابر یک.
gameover.blog.ir
using UnityEngine; using System.Collections; public class test : MonoBehaviour { public AudioSource myAudioSource; void OnTriggerEnter(Collider other){ if (other.tag == "player") myAudioSource.Play (); } }
using UnityEngine; using System.Collections; [RequireComponent(typeof(AudioSource))] public class ExampleClass : MonoBehaviour { public AudioClip clip; void Start() { AudioSource.PlayClipAtPoint(clip, new Vector3(5, 1, 2)); } }مثال 2:
using UnityEngine; using System.Collections; [RequireComponent(typeof(AudioSource))] public class runAudioOnPosition : MonoBehaviour { public Transform A; public AudioClip clip; void Start() { AudioSource.PlayClipAtPoint(clip, A.position); } }
gameover.blog.ir
رگ دال چیه ؟ رگ دال سیستمی هست بر حسب rigidbody که وقتی کاراکتر تیر می خوره یا مثلا از روی موتور می افته ولو میشه.(هر یک از پارت های فرزند گیم ابجکت در حقیقت کامپوننت rigidbody دارن که فیزیک افتادن به صورت فردی روی تمام فرزندها اجرا میشه)
برای غیرفعال کردن رگ دال یکی از راه ها این است که گزینه ی isKinematic را برای تمام ریجید بادی های فرزند فعال کنیم(نکته: برای فعال کردن هم می توانید آن را false کنید):
using UnityEngine; using System.Collections; public class Ragdoll : MonoBehaviour { void DisableRagdoll() { Rigidbody[] allRigidbodies = GetComponentsInChildren<Rigidbody>(); foreach(Rigidbody r in allRigidbodies) { r.isKinematic = true; }
}
void EnableRagdoll() { Rigidbody[] allRigidbodies = GetComponentsInChildren<Rigidbody>(); foreach(Rigidbody r in allRigidbodies) { r.isKinematic = false; }
}
public void OnDeath() {
EnableRagdoll();
}
}
نکته:
اگر بخواهیم وقتی خون از صفر کمتر شد سیستم رگ دال اجرا بشه از کدی مثل این استفاده می کنیم(دوستان این کدها الگو هست):
در مثال زیر ابتدا انیمیشن در حال اجرای جاری را stop می کنیم.
سپس سیستم رگ دال را فعال می کنیم.
همچنین اسکریپت EnemyMovement را که برای حرکت کاراکتر بود غیر فعال می کنیم.(با همین روش شما باید سعی کنید تمام کامپوننت های دیگه رو در اسکریپت خودتون غیر فعال کنید. ما به طور کلی اشاره کردیم)
public void Damage(int damageValue) { _currentHealth -= damageValue; if (_currentHealth <=0) { Animation a = GetComponentInChildren<Animation>(); a.Stop(); Ragdoll r = GetComponent<Ragdoll>(); if(r != null){ r.OnDeath(); } //if } //if } //Damage
gameover.blog.ir
Rigidbody[] allRigidbodies = GetComponentsInChildren<Rigidbody>();
مثال اول:
private Transform cachedTransform; private Rigidbody cachedRigidbody; private AudioSource cachedAudioSource; void Awake() { cachedTransform = transform; cachedRigidbody = GetComponent<Rigidbody>(); cachedAudioSource = GetComponent<AudioSource>(); }
مثال دوم:
//http://unitylore.com/articles/category/advanced/
using UnityEngine; public class Player : MonoBehaviour { private new Transform transform; void Awake() { transform = GetComponent<Transform>(); } void Update() { if(transform.position.y > 5f) Debug.Log ("The player is high up."); } }
gameover.blog.ir
gameover.blog.ir
رو اول ساده:
ابتدا فریم های فایل gif رو با این سایت پس از آپلود جدا کنید:
سپس در یک پوشه zip دانلود و پس از unzip در یک آرایه بریزید فریم ها رو و استفاده کنید .
using UnityEngine; using System.Collections; //GameOver.SellFile.ir //@gameOverBlog //gameover.blog.ir public class lr : MonoBehaviour { public Vector3 start,end; public Color color; public GameObject A,B; public Material mat; private LineRenderer myLineRenderer; void Start () { this.gameObject.AddComponent<LineRenderer>(); myLineRenderer=this.gameObject.GetComponent<LineRenderer>(); //--- start=A.transform.position; end=B.transform.position; DrawLine(start,end,color); } void DrawLine(Vector3 start, Vector3 end, Color color) { myLineRenderer.material =mat; myLineRenderer.SetColors(color, color); myLineRenderer.SetWidth(0.2f, 0.2f); myLineRenderer.SetPosition(0, start); myLineRenderer.SetPosition(1, end); } }سپس دو cube به نامهای cube1 و cube2 با متریال با رنگ دلخواه ایجاد کرده و سپس Drag کنید روی متغیر های A و B در inspector.
کلاس PlayerPrefs مخفف player preferences می باشد و برای ذخیره متغییرها و ایجاد session هایی در طول مراحل بازی بکار می رود.
یعنی با استفاد از اون می تونیم متغیری رو در کل بازی ذخیره و بازیابی کنیم.
این کلاس از نوع static هست. نوع استاتیک باعث میشه آخرین مقدار همیشه برای اون حفظ بشه.
PlayerPrefs.SetInt ("key", value); PlayerPrefs.GetInt("key"); PlayerPrefs.SetFloat ("key", value); PlayerPrefs.GetFloat("key"); PlayerPrefs.SetString("key","value") PlayerPrefs.GetString("key");
برای خروج بازی و باقی موندن تغییر:
PlayerPrefs.Save();
بهترین آموزش عالی سیستم قفل مراحل با استفاده از همین مثال بالا:
قیمت فقط 500 تا تک تومن.
Physics.gravity = Vector3(0, -1.0, 0);مثال: کد زیر رو به یک cube بدید و اون روی plane بذارید. سپس Space بزنید تا تست کنید.
using UnityEngine; using System.Collections; public class gravity : MonoBehaviour { private Rigidbody rb; void Start () { rb=gameObject.GetComponent<Rigidbody>(); rb.useGravity=true; Physics.gravity =new Vector3(0, -20.0f, 0); } void Update () { if(Input.GetKey(KeyCode.Space)){ rb.velocity=new Vector3(rb.velocity.x,5,rb.velocity.z); } } }
gameover.blog.ir
public GameObject A,tmp,B; void Start(){ tmp=A; A=B; B=tmp; }
gameover.blog.ir
سعی می کنیم فقط مثال بیاریم و فکر کردن با شما
در مثال زیر تابع GetComponentsInChildren تمام کامپوننت های Renderer گیم ابجکت فرزند گیم ابجکت فعلی رو در به صورت آرایه ای برگشت می ده.
public void Enable () { Renderer[] renderers = GetComponentsInChildren< Renderer >(); foreach(Renderer renderer in renderers) renderer.enabled = true; } public void Disable () { Renderer[] renderers = GetComponentsInChildren< Renderer >(); foreach(Renderer renderer in renderers) renderer.enabled = false; }
gameover.blog.ir
کد زیر رو بدید به یک ui Text تا پس از 5 ثانیه محو بشه:
//fade.cs //gameOver.SellFile.ir using UnityEngine; using System.Collections; using UnityEngine.UI; public class fade : MonoBehaviour { void Start () { GetComponent<Text>().CrossFadeAlpha(0f, 5f,false); } }
منبع: کتاب ui در یونیتی:
http://gameover.sellfile.ir/prod-403328-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86+%DA%A9%D8%AA%D8%A7%D8%A8+%D9%81%D8%A7%D8%B1%D8%B3%DB%8C+%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C+%D9%88%D8%A7%D8%B3%D8%B7+%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C+ui+%D8%AF%D8%B1+%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C+%D8%A8%D8%B1%D8%A7%DB%8C+%D8%A7%D9%88%D9%84%DB%8C%D9%86+%D8%A8%D8%A7%D8%B1+%D8%AF%D8%B1+%D8%A7%DB%8C%D8%B1%D8%A7%D9%86.htmlgameover.blog.ir
public void Like(string like){ AndroidJavaClass intentClass = new AndroidJavaClass ("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject ("android.content.Intent"); AndroidJavaClass uriClass = new AndroidJavaClass ("android.net.Uri"); intentObject.Call<AndroidJavaObject> ("setAction", intentClass.GetStatic<string> ("ACTION_EDIT")); intentObject.Call<AndroidJavaObject> ("setData", uriClass.CallStatic<AndroidJavaObject> ("parse", "bazaar://details?id="+like)); intentObject.Call<AndroidJavaObject> ("setPackage", "com.farsitel.bazaar"); AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject> ("currentActivity"); currentActivity.Call ("startActivity", intentObject); }
به جای com.farsitel.bazaar اسم اپ رو بزنید.
gameover.blog.ir
منبع این بود:
اصل کار اینه:
angle = Mathf.Clamp(angle, min, max);
تابع کلمپ میاد مقدار اولیه که در پارامتر اول بهش می دیم رو بین دو مقدار مینی مم و ماکزیمم چک می کنه اگه بیشتر شد روی حداکثر محجاز تنظیم و اگه کمتر روی حداقل میزان مجاز ست می کنه..
مثال
transform.eulerAngles =new Vector3(0, ClampAngle(angle, ang0-40, ang0+40), 0);
اینم یک تابع ترکیبی:
void float ClampAngle(float angle , float min, float max) { if (angle<90 || angle>270){ // if angle in the critic region... if (angle>180) angle -= 360; // convert all angles to -180..+180 if (max>180) max -= 360; if (min>180) min -= 360; } angle = Mathf.Clamp(angle, min, max); if (angle<0) angle += 360; // if angle negative, convert to 0..360 return angle; }
gameover.blog.ir
مثال : در رویداد Start اینو بذارید :
Handheld.PlayFullScreenMovie ("esmeFilm.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput);
gameover.blog.ir
اینم واسه سادگی هست به جای دو مساوی و برای خلاصه سازی مقایسه تگ ها:
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) Destroy(other.gameObject); } }
منبع:gameover.blog.ir
سازنده: گیم اور
sing UnityEngine; using System.Collections; public class instantiateClickPoint : MonoBehaviour { public GameObject obj1; void Update () { if(Input.GetMouseButtonDown (0)){ Instantiate(obj1,Input.mousePosition,obj1.transform.rotation); } } }
gameover.blog.ir
لینک دانلود آموزش+سورس
در این فیلم ذخیره اسم و امتیاز رو با استفاده از یک button و کدنویسی یادمی گیرید.
ایجاد دیتابیس mySQL روی هاست رایگان رو یاد می گیرید.
ساخت جدول و ستون ها
ارسال امتیاز و اسم فرد به فشردن دکمه به صفحه ی وب php و ذخیره روی جدول دیتابیس
نمایش 5 امتیاز برتر و دریافت و log در یونیتی
در این آموزش از پارسه ،یا هیچ سیستم یا پکیج آماده ای استفاده نشده.
همه چیز واضح هست.
تمام روی کدنویسی php و csharp در یونیتی با کد این کار رو می کنیم و رفع خطا
خود قسمت های ضروری هم پک شد همراه اموزش با حجم چند کیلوبایت
-
فیلم بسیار با ارزشی هست.
توصیه می کنم حتما تهیه کنید.
چون دیگه همچین آموزشی رو قول میدم هیچ جا پیدا نخواهید کرد.
چون تمام کارهایی که باید روی سرور انجام بشه تقریبا گفته شده.
و خوبیش این هست که برنامه نویسیتون و اطلاعاتتون بالا می ره.
کیفیت عالی
وضوع: 1366x768
صدا عالی
http://gameover.blog.ir/
ایده: برای اینکه روی جسم کلیک کنید و انتخاب بشه و بعد حرکت کنه می تونید یه متغیر public تعریف کنید و بعدش بگید if(Input.GetMouseButton(0 بعدش با rayCast تگ شی دلخواه رو بخونید و بگید اگه مساوی تگ دلخواه بود ذخیره کنید توی متغیر پابلیک و بعدا روی هر جای زمین کلیک کردید با استفاه از این متغیر پابلیک،جسم انتخاب شده رو حرکت بدید به نقطه ی کلیک شده ی زمین.در این اسکریپت وقتی به نقطه ی دلخواه کلیک کنید یا لمس کنید کاراکتر به اون نقطه حرکت می کنه (برای نگاه کردن می تونید lookAt بکار بگیرید و y رو صفر کنید تا بالا و پایین نگاه نکنه)
اسکریپت بسیار عالی.
دقت کنید اکثر اسکریپت ها در یک ورژن کار می کنند اما این
تست شده روی یونیتی 4و 5 و اندروید هست.
به زبان سیشارپ با کلیپ.
gameover.blog.ir
آموزش کامل ایمپورت FBX و رفع خطای Legacy Animator و سوئیچ بین انیمیشن های راه رفتن و پرش و … با سیشارپ در یونیتی
—–
Rigged model ها یا مدل های انیمیشن دار پسوندشون معمولا blend (ساخته شده با بلندر) یا FBX می تونه باشه.(معمولا FBX هست انیمیشن های maya و max و …)
در این آموزش یاد می گیرید که اگه مدل Rig شده ی FBX شما مدلی باشه که با نرم افزارهای خیلی قدیمی rig شده و انیمیشن دار هست و در یونیتی فقط با کامپوننت انیمیشن اجرا میشه با استفاده از تکنیکی که بکار می گیریم توسط کامپوننت انیماتور اونو اجرا کنیم.
در این آموزش حجم مدل ریگ شده ی FBX قدیمی رو کم می کنیم و باعث بهینه شدن بازی شما می شه.
توصیه می کنم این آموزش رو بگیرید چون خیلی خوبه و کاربردی هست و اکثرا دنبالش هستن.
جدا سازی کلیپ ها از FBX و تبدیل به anim برای استفاده روی مدل دیگه.
حجمش هم کم کردیم تا راحت تر دانلود کنید.
کیفیت صدا: عالی.
کیفیت فیلم:عالی
---
برای اینکه اعضای کانالمون زیاد بشه لینک رو توی کانال تلگرام گذاشتیم: @gameoverblog
لطفا تو کانال عضو بشید.
gameover.blog.ir
کلیک روی دکمه و رفتن به مرحله ی دلخواه در یونیتی 4.6 و 5
به کانال ما را در تلگرام مراجعه شود:
http://gameover.blog.ir/1395/06/16/%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%DA%A9%D9%84%DB%8C%DA%A9-%D9%88-%D9%86%DA%AF%D9%87-%D8%AF%D8%A7%D8%B4%D8%AA%D9%86-%D8%AF%DA%A9%D9%85%D9%87-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8Cgameover.bog.ir
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void OnGUI() { string[] names = QualitySettings.names; GUILayout.BeginVertical(); int i = 0; while (i < names.Length) { if (GUILayout.Button(names[i])) QualitySettings.SetQualityLevel(i, true); i++; } GUILayout.EndVertical(); } }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Example() { QualitySettings.DecreaseLevel(false); } }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Example() { QualitySettings.IncreaseLevel(false); } }نکته: false که نوشتیم طبق help یونیتی بود. باز تست کنید.
gameover.blog.ir
public Text text1; void OnMouseDown(){ text1.text = "salam"; }
gameover.blog.ir
ترجمه:sajjad3011
یک UI | Panel بسازید.اسمشو بذارید MP3Panel .
اندازشو به دلخواه تنظیم کنید.این پنلی هست که قراره دکمه ها رو روش بذارید.
چند تا دکمه از طریق UI | Button بذارید روش و یک گوشه از کانواس تون جا بدید. مثل این شکل)گوشه
پایین و سمت راست(:
اسم هاشون:
PlayButton و PauseButton و StopButton و PrevButton و NextButton
متن ها به ترتیب: Play, Pause, Stop, Prev, Next قرار بدید.
یک کامپوننت Audio Source (Script) بدید به پنل MP3Panel . برای اینکار
مسیر Add Component | Audio | Audio Source رو طی کنید.حالا می تونید یک
فایل موزیک بندازید روش.
یک اسکریپت سیشارپ به نام MP3PlayerScript بسازید و بدید به MP3Panel .
خط اول:
using UnityEngine.UI;خط بعدی قبل از تعریف کلاس ، بدون سمی کالن در پایان دستور)نقطه ویرگول ;
[RequireComponent(typeof(AudioSource))]در خط فوق گفتیم برای استفاده از اسکریپت یک کامپوننت Audio Source (Script) باید به گیم ابجکت ای
private AudioSource audioSource; public AudioClip[] musicList; private int index=0; private bool isStopByPlayer;اولی برای ذخیره
void Start () { audioSource = GetComponent<AudioSource> (); }تابع بعدی برای play :
public void Play(){ audioSource.Play (); isStopByPlayer = false; }تابع بعدی توقف:
public void Stop(){ audioSource.Stop (); isStopByPlayer = true; }تابع next برای اجرای موسیقی بعدی:
public void next(){ index++; if (index == musicList.Length) index = 0; audioSource.clip = musicList [index]; Play (); }
public void previous(){ index--; if (index == -1) index = musicList.Length-1; audioSource.clip = musicList [index]; Play (); }و اما تابع آپدیت:
void Update () { if (!audioSource.isPlaying && !isStopByPlayer) next (); }در تابع آپدیت گفتیم اگه موسیقی پایان یافت و توسط پلیر استاپ نشده تابع next() رو اجرا کنه.
مینی مپ یعنی نقشه بازی.
روش های زیادی هست. یکیش اینه که یک دوربین رو بذارید بالای صحنه که صحنه
رو بگیره و روی یک پلین render رو پورت کنه.(یعنی خروجی دوربین رو بندازه
روی plane یا روی Raw ui image) اینجا هم همین روش رو یاد می دیم.
gameover.blog.ir
فیلم آموزشی خروجی اندروید در یونیتی 4 و 5
دانلود یونیتی 5 کامل:
http://p30download.com/fa/entry/57446/
دانلود یونیتی 4 کامل:
http://p30download.com/fa/entry/35648/
public Material m1,m2,m3; if(Input.GetKeyDown(KeyCode.R)) { gameObject.renderer.material.color = Color.red; //gameObject.renderer.material=m1; } if(Input.GetKeyDown(KeyCode.B)) { gameObject.renderer.material.color = Color.blue; //gameObject.renderer.material=m2; } if (Input.GetKeyDown (KeyCode.T)) { gameObject.renderer.material.color = Color.white; // gameObject.renderer.material=m3; }
gameover.blog.ir
به لینک زیر برید چند ثانیه صبر کنید سپس ردتبلیغ رو بزنید.
در این فیلم کوتاه یاد می گیرید که رنگ رو انیمیشن کنید.
حجم زیر یک مگ باس باشه.
gameover.blog.ir
با استفاده از این تکنیک می تونید هزاران نور رو در صحنه قرار بدید و بدون افت فریم زیاد.
در این فیلم ، ایجاد لایت مپ و تکنیک بیست و بیک کردن صحنه یکی از بهترین تکنیک های بهینه سازی Render در یونیتی 4 و یونیتی 5 رو آموزشی می دیم.
تکنیک beast و نورپردازی lightmap و bake کردن صحنه به منظور پردازش کمتر و کارایی و کیفیت گرافیک بهتر:
این تکنیک بسیار موثر هست و به شدت کارایی داره و پردازش رو کم می کنه و
بازی سازان بزرگ دنیا از این تکنیک در خیلی از بازی ها استفاده می کنند و
به جرات می شه گفت یکی از قوی ترین تکنیک ها هست.
این از آموزش:
حتما تهیه کنید چون واقعا هر بازی سازی برای بالابردن کارایی بازی های بزرگ بهش نیاز خوهد داشت و این یکی از تکنیک های بهینه سازی هست.
که خوب قبلا هم تکنیک آف اسکرین بافر یا غیر فعال سازی اشیای دور دست یا دور از صحنه رو برای بهینه سازی یاد دادیم.
بسم الله الرحمن الرحیم
کتاب یو آی در یونیتی
#کتاب #آموزش #بازیسازی #یونیتی
خرید کتاب یو آی
یو آی یعنی یوزر اینترفیس = user interface
یو آی یعنی منوهای دو بعدی،کنترل های لمسی بازی،نقشه کوچک،رادار، نوار خون، نوار سلامتی،و اجرای اون روی گوشی های مختلف
کتاب آموزش ui دو بعدی در یونیتی 5:
سازنده: گیم اور بلاگ
نویسنده: گیم اور
لینک خرید :
gameover.blog.ir
نویسنده: گیم اور
لینک خرید :
این کتاب تمام مبتدیان رو با برنامه نویسی منوها و دکمه ها، اسلایدر،و کلیک روی دکمه ها و ساخت رادار و در یونیتی 5 آشنا می کنه.
به شما یاد می ده mp3 player بسازید تو یونیتی قدم به قدم.
کلیک روی دکمه ها رو یاد میده.
و این که منوها رو طری طراحی کنید که روی تمام گوشی ها اجرا بشه و رزلوشن اش هماهنگ باشه و نکات بسیار با ارزش و خوبی در اون وجود داره.
کدهای توی کتاب تست شده بعد وارد کتاب شده.
نویسنده صرفا کار ترجمه رو انجام نداده
بلکه حداقل یک الی دو ماه برای تالیف این کتاب زحمت کشیده
و سعی شده مثال های توی این کتاب اول تست بشه
و قدم به قدم به صورت تصویری و عالی نمایش داده بشه.
متاسفانه افراد کمی هستن که با کتاب های ما آشنا هستند.
ولی به جرات می گم ما همینطوری یک کتاب رو ترجمه نمی کنیم.
قبلش می بینیم آیا کاربردی هست و به درد بازی سازا می خوره یا نه
و چون خیلی از افراد به ساختن یو آی = یوزر اینترفیس ،یا همون واسط کاربری توی بازی ها نیاز دارن
مثلا نمایش یک متن فارسی یا ساخت دکمه که اگه مثلا روش کلیک کنیم بریم مرحله ی دلخواه و ساختن نوار جون یا نوار تیر و انواع نوار خون دایره ای و نواری و ترکیبی و غیره اومدیم این کتاب بسیار بسیار با ارزش رو ترجمه کردیم.
واقعا حیفه که این کتاب رو از دست بدید و صد در صد پول بالاخره چه بخواید چه نخواید باید خرج بشه اما زمان شما از دست میره و کلی وقت و هزینه دیگه رو ما صرف ترجمه این کتاب کردیم تا شما خیلی راحت آسون با قیمت بسیار منصفانه اونو به راحتی از طریق اینترنت به صورت PDF تهیه کنید.این نکته رو بهش اشاره کنم که فروش ها خیلی کم هست و انگیزه ما داره کم میشه. پ اگه می خواید کتاب های بهتری هم ترجمه کنیم سعی کنید توی وبلاگ هاتون از این کتاب یکم برای ما تبلیغ کنید . ممنون.
اگه جایی مجانی این کتاب گذاشتن لطفا پولش رو از طریق وبلاگمون پرداخت کنید چون برای ترجمش چند ماه زحمت کشیدیم.
یا لااقل خبر بدید اگه تو سایتی گذاشتن مرسی.
ضمنا این کتاب ممکنه بعدا هم به درد شما بخوره چون مطالب فرار هست و سطحش مبتدی نیست ممکنه بعد مدتی بازیسازی رو بذارید کنار و دوباره شما سازنده ی آموزش،یا شمای بازیساز یا تولید کننده محتوا،یا شمای مدرس،نیاز به یادآوری داری .پس این کتاب واقعا به دردت می خوره.
در ضمن لطفا به دانشجویان عزیزتون هم بگید کتاب رو از وبلاگ ما بخرن تا قانون کپی و حمایت از تولید کننده ایرانی زیر پا گذاشته نشه.
ممنون از همه ی شما مخاطبین با فهم که مدام به وبلاگ ما سر می زنید.
آموزش های جدید گیم اور با پشتیبانی شما در تلگرام و همینطور سعی می شه در هر دو ورژن از یونیتی باشه. یعنی فیلم های موردی که اشاره می کنیم هم در یونیتی 4 و یونیتی 5 آموزش در یک فیلم قرار می گیره.
gameover.blog.ir
gameover.blog.ir
سازنده: محسن محمدی
این آموزش بسیار عالی توسط محسن محمدی ساخته شده و در اختیار شما قرار می گیره.
لطفا حتما نظر بدید اگه مفید بود و اگه عیبی هم در اون می بینید بگید
--
آموزش بعدی در حال ضبط هست و به زودی میذاریم تو وبلاگ
اینم لینک FPS kit:
http://www.mediafire.com/download/8uog9fw949d4lv1/Free+FPS+Kit.unitypackage
public GameObject target; float myDistance=1f; void FixedUpdate () { if (Vector3.Distance (this.transform.position, target.transform.position) < myDistance) { target.GetComponent<Rigidbody> ().velocity = new Vector3 (0, 0, 0); } }
دوستان خیلی از سوالات در مورد یو آی هست.
توصیه می کنیم برای حمایت از ما این کتاب بسیار مفید رو تهیه بفرمایید.در این آموزش یاد می گیرید با استفاده از بلندر یک درخت رو طراحی کرده و در مادباکس تکستچر uv map بگیرید.
و همینطور یک خانه ی گلی رو تکستچر می کنید و به یونیتی می برید و تکستچر رو دقیقا روی خانه و درخت تنظیم می کنید و اجرا می گیرید.
با این آموزش اگه مبتدی هم باشید راحت می تونید درخت دلخواه رو طراحی و خانه ای که در تصویر می بینید بسازید.
قیمت
این اموزش ها واقعا در پایین ترین حد ممکن هست و کیفیت آموزش عالی و
شک نکنید حاصل مدت ها تجربه در این آموزش ها آورده میشه تا شما خیلی سریع
رشد کرده و راضی باشید و امیدوارم از ما حمایت کنید.
چون وقعا خرید ها خیلی پایینه و با این وضعیت برای ما کار در یک فضای تقریبا سرد ادامه خواهد داشت .
لطفا اگه از آموزش ها خوشتون اومد حتما نظر بدید و اگه آموزش خاصی مد نظرتون هست پیام خصوصی کنید. مرسی از حمایت شما.
برنامه نویسی حرکت دوربین و تعقیب پلیر سه بعدی در یونیتی
در این اموش حرکت ساده پلیر بدون انیمیش شرح داده میشه با کد های راست و چپ و جلو و عقب
انیمیشنی در کار نیست فعلا اموزش ندادیم اما این فیلم مقدمه ای هست از نکات که یک مبتدی بتونه یک پلیر رو به حرکت در بیاره.
فیزیک ریجید بادی و غیره و جامپ هم در این اموزش گفته نشده.
در کل بیشتر مربوط به تعقیب نرم دوربین به دنبال پلیر هست و توضیح روی برنامه نویسی هست بیشتر
زبان سیشارپ
مدت: 26 دقیقه
حجم: 32 مگ
Input.GetAxis ("Mouse X")
معادل
Input.mousePosition.x
----------------
Input.GetAxis ("Mouse Y")
معادل
Input.mousePosition.y
Input.GetAxis("Horizontal")//Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.RightArrow)
Input.GetAxis("Vertical")//Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow)
gameover.blog.ir
کلیپ آموزشی نمونه برای شما :
زیر یک مگ :
این تابع معادل AddForce (برای ایجاد نیرو) بوده ولی برای ایجاد نیروی چرخشی بکار می رود.
هر چند از خصوصیت rotation و متد Rotate هم می توان استفاده کرد اما این تابع هم برای چرخش گیم ابجکت،حول محور دلخواه بکار می رود.
مثال:
در اینجا با فشردن LMB یا کلیک چپ ماوس و حرکت آن، گیم ابجکت را می چرخوانیم و با رها کردن ماوس آنرا از چرخش در می آوریم.
//addTorque.cs
//http://GameOver.SellFile.ir
using UnityEngine; using System.Collections; [RequireComponent (typeof (Rigidbody))]//daryafte component RigidBody va jelogiri az hazfe aan public class addTorque : MonoBehaviour { float h,v,amount=1000f; public Rigidbody rb; void FixedUpdate () { if (Input.GetMouseButton(0)) { //age kelid mouse feshorde shod h = Input.mousePosition.x * amount * Time.deltaTime; v = Input.mousePosition.y * amount * Time.deltaTime; rb.AddTorque (transform.up * h);//transform.up=Vector(0,1,0) rb.AddTorque (transform.right * v);//transform.right=Vector(1,0,0) } else //age kelid mouse raha shod { rb.angularVelocity = new Vector3(0,0,0);//shetab charkheshi = 0 } } }
gameover.blog.ir
transform.SetParent(اسم پدر , false)
gameover.blog.ir
public Rigidbody rb; void Start () { rb.mass = 0.5f; }
gameover.blog.ir
در کانال @gameoverblog تلگرام عضو شوید.
gameover.blog.ir
gameover.blog.ir
gameover.blog.ir
فقط ویژه مبتدی ها
https://noobtuts.com/unity/2d-arkanoid-game
ترجمه ی فارسی آموزش فوق رو با قیمت 1000 تومان با سورس+ اسپرایت ها رو می تونید از لینک زیر بخرید:
gameover.blog.ir
روش اول : استفاده از پکیج:
روش دوم:آموزش با استفاده از پارتیکل سیستم:
به لینک زیر برید و چند ثانیه بمونید بعدش رد تبلیغ رو بزنید:
gameover.blog.ir
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Start() { AudioSource aud = GetComponent<AudioSource>(); aud.clip = Microphone.Start("Built-in Microphone", true, 10, 44100); aud.Play(); } }
مثال بعدی:
using UnityEngine; using System.Collections; public class recordAudio : MonoBehaviour { void Start() { string deviceName = ""; foreach (string device in Microphone.devices) { deviceName = device; Debug.Log (deviceName); } //================= AudioSource aud = GetComponent<AudioSource>(); aud.clip = Microphone.Start("Microphone (Realtek High Definition Audio)", true, 10, 44100); aud.Play(); } // Update is called once per frame void Update () { } }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Start() { foreach (string device in Microphone.devices) { Debug.Log("Name: " + device); } } }