درود مهمان گرامی! ثبت نام

آموزش ساخت بازی با C# آموزش پروژه محور یونیتی Unity آموزش ساخت بازی حدس تصویر
آموزش مدل سازی در Maya آموزش یونیتی Unity- ساخت منو آموزش گنجینه برنامه نویسی اندروید
آموزش مدل سازی با 3Ds Max آموزش متحرک سازی با Unity آموزش گرافیک کامپیوتری با OpenGL
آموزش متحرک سازی در 3Ds Max مجموعه آموزش های ساخت بازی آموزش ساخت بازی در ویژوال بیسیک
● آموزش های رایگان ● تبلیغات دیجیتال هوشمند ● استخدام در فرادرس

امتیاز موضوع:
  • 6 رأی - میانگین امتیازات: 4.67
  • 1
  • 2
  • 3
  • 4
  • 5
برنامه نویسی و راهکارهایی در یونیتی
#41
ایجاد یک متن با تنظیم فونت و رنگ و اندازه دلخواه توسط GUI skin :
نکته : این مطلب قبلا در http://promakers.ir/showthread.php?tid=5144 تحت java script آموزش داده شده بود.
من با زبون سیشارپ(csharp)آموزش میدم.
ابتدا باید یک پوسته برای واسط کاربری بسازیم تا بتونیم فونت و اندازه و رنگ و بقیه رو تنظیم کنیم.
پس یک gui skin ایجاد کنید(مسیر منوی Assets->Create->GUI skin )
resim
پوشه ای به نام Fonts در پروژه ایجاد کرده و فونت دلخواه(در اینجا SKELETOR ) رو کپی کنید توش.
resim
یک اسکریپت سیشارپ با کدهای زیر به نام DrawTextWithStyle ایجاد کنید.(حروف کوچک و بزرگ رو دقیقا رعایت کنید ویلا ممکنه با خطا مواج بشیم چون سیشارپ داخلش که باید اسم کلاس رو DrawTextWithStyle بذاریم نسبت به حروف حساس هست.):
کد php:
/*script name : DrawTextWithStyle.Cs
Draw text with style
Author:Sajjad3011

First create folder 'Fonts' and copy font with name 'MTCORSVA' in it.
*/

using UnityEngine;
using System.Collections;

public class 
DrawTextWithStyle MonoBehaviour {

    public 
GUISkin guiSkin ;
    
void OnGUI ()
    {
        
GUI.skin guiSkin;
        
GUI.Label (new Rect (100251000100), "salam world");
    }

سپس New GUISkin ساخته شده رو در کادر project انتخاب کرده و فونت SKELETOR رو بکشید توی متغیر Font رها کنید.
resim
سپس new Gui skin رو انتخاب کرده و در inspector درزیر شاخه ی Label ،متغیر FontSize رو روی اندازه 46 تنظیم کنید :
اگه اندازه فونت بیشتر از ناحیه ی مستطیلی بود توی اسکریپت می تونید قسمت Rect (100, 25, 1000, 100) رو دستکاری کنید.
resim
تخصص:بیسواد،نوب،نادان
https://cafebazaar.ir/app/ir.s.s.hek.nokh/?l=fa
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.




پاسخ
 سپاس شده توسط aliheadari
#42
مسیر تنظیم دسترسی به کارت حافظه یا SD card اندروید برای اجازه ذخیره سازی یا دانلود فایل توسط یونیتی :
resim

طبق شکل Android رو انتخاب کرده و به قسمت Player settings رفته و در زیر شاخه ی Other settings گزینه ی write access رو روی SD Card(یا اجازه دسترسی کارت حافظه) قرار بدید.
گزینه bundle indentifier (شناسه کاربری) هم اسم اپلیکیشن شما بعد از نصب روی دستگاه اندروید هست.(مثال : com.myTeam.test1 که myTeam اسم شرکت و test1 اسم اپلیکیشن هست).
تخصص:بیسواد،نوب،نادان
https://cafebazaar.ir/app/ir.s.s.hek.nokh/?l=fa
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.




پاسخ
 سپاس شده توسط aminblog76 ، aliheadari ، qwerty13
#43
(21/12/1393، 03:51 عصر)sajjad3011 نوشته است: برای تغییر سلاح یا تعویض سلاح یا تعویض قطعات یا بدنه ی ماشین یا سوئیچ یا تغییر لباس یا فعال و غیرفعال کردن آبجکت های دلخواه در صحنه چه کنیم؟
برای اینکار از تابع setActive استفاده می کنیم. مثلا اسکریپت زیر رو ببینید. با فشردن کلید 1 و 2و3 روی numpad و یا 1و2و3 زیر کلید های تابعی(fuctional keys) بین قطعات تنظیم شده در پارامترهای ghete1 و ghete2 و ghete3 سوئیچ می کنیم و در هر لحظه یک آیتم را فعال خواهیم کرد.
کد php:
//setActive.Cs
using UnityEngine;
using System.Collections;
public class 
setActive MonoBehaviour {
    public 
GameObject ghete1;
    public 
GameObject ghete2;
    public 
GameObject ghete3;
    
// Use this for initialization
    //edit:Sajjad3011
    
void Start () {
        
ghete1.gameObject.SetActive(true);
        
ghete2.gameObject.SetActive(false);
        
ghete3.gameObject.SetActive(false);
    }
    
// Update is called once per frame
    
void Update(){
        if(
Input.GetKeyDown("1") || Input.GetKey (KeyCode.Keypad1)){
            
//switch part1
            
killAll();
            
ghete1.gameObject.SetActive(true);
        }
        if(
Input.GetKeyDown("2") || Input.GetKey (KeyCode.Keypad2)){
            
//switch part2
            
killAll();
            
ghete2.gameObject.SetActive(true);
        }
        if(
Input.GetKeyDown("3") || Input.GetKey (KeyCode.Keypad3)){
            
//switch part3
            
killAll();
            
ghete3.gameObject.SetActive(true);
        }
    }
    
void killAll(){
        
ghete1.gameObject.SetActive(false);
        
ghete2.gameObject.SetActive(false);
        
ghete3.gameObject.SetActive(false);
    }

به اسکریپت دقت کنید.زبان آن سیشارپ بوده و با اندکی تغییر می توانید آن را به js تغییر دهید. تابع killAll رو هر بار صدا می زنیم تا تمام آیتم ها رو غیر فعال کنیم و سپس یکی از قطعات رو با نوشتن اسمش و سپس تابع setActive از کلاس gameObject فعال می کنیم.
دقت کنید که سه تا گیم آبجکت به عنوان قطعه ی 1 و 2 و 3 باید توی صحنه بذارید و همچنین یک گیم آبجکت تهی(empty game object) ایجاد کنید و اسکریپت رو بندازید روش. سپس قطعات رو بندازید روی پارامترهاش توی inspector تا توی آرایه تنظیم بشه.wink
نکته ی مهم : دقت کنید که موقعت(position) و زاویه ی چرخش(rotation) و مقیاس(scale) تمام قطعات یکی باشه تا بتونید به راحتی قطعات ماشین رو تنظیم کنید و بزرگ بودن یا قطعات خودرو تو هم نرن. برای تغییر سلاح یا تغییر اسلحه اینکار مهم نیستsmiley

منبع مطالعه شده : http://answers.unity3d.com/questions/606...cript.html

با سلام

اگه من بخوام اين كد به 3اسلحه بدم چه بايد كنم .

بعد ميخوام عكس اسلحه در بالاي صفحه ديده بشه مثل كانتر
... در حال ساخت بازي و آموزش ...

wink (:>
... Are making the game and train ...


.:straight_PrOGrAmmeR_|::.


پاسخ
#44
دادن اسکریپت فوق به سه اسلحه اشتباه هست.چون وقتی اسلحه رو غیر فعال کنه دیگه اسکریپتش هم از کار میفته.
-
عکس اسلحه رو با drawTexture رسم کن:
اینجا تکنیک رو گفتم.مختصات می دی و تصویر و الی آخر...:
http://promakers.ir/showthread.php?tid=9726
تخصص:بیسواد،نوب،نادان
https://cafebazaar.ir/app/ir.s.s.hek.nokh/?l=fa
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.




پاسخ
 سپاس شده توسط moien1
#45
لطفا بگید برای این کار چه کدی لازمه:
دو تا متغیر تعریف بشه (از نوع گیم آبجکت و جوری که از ادیتور وارد کنیم )
مثلا یکیش اسمش :pgm باشه
دومی اسمش: printer باشه
حالا بگیم هر وقت آبجکتی که کد رو بهش میدیم به آبجکتی که تگ walk داره برخورد کنه
در جایی که printer قرار داره pgm ساخته بشه و بعد از پنج ثانیه از بین بره.
هیچ وقت موقع حرف زدن غذا نخورید .
اندروید را با طعم جاوا بنوشید
https://telegram.me/joinchat/BTG1TQNIX1bnCIx1LW5hEA
http://promakers.ir/showthread.php?tid=1...#pid129749
resim



everyday is Ashura, every land is Karbala
پاسخ
#46
متغیرها از هر نوعی باشه مهم نیست.برای اینکه در بخش پارامترهای inspector تعریف بشن باید در کد سیشارپ در بخش public یعنی قبل از تابع Start تعریف بشن.
مثال :
کد php:
var inputGameObject1Transform[]; 
می تونی مثال هوش مصنوعی و way points رو در اینجا بخونی و عملی کار کنی تا یاد بگیری چطوری sphere ها رو از ورودی بدی به آرایه:
http://promakers.ir/showthread.php?tid=8...#pid109825
تخصص:بیسواد،نوب،نادان
https://cafebazaar.ir/app/ir.s.s.hek.nokh/?l=fa
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.




پاسخ
 سپاس شده توسط moien1 ، aminblog76
#47
اونی که من میخوام چی دیگه است ،
میخوام وقتی جسمی که بهش کد رو میدیم به جسمی که برچسب b داره برخورد کرد.
در محلی که جسم c قرار داره
جسمی به اسم d ساخته بشه و بعد از پنج ثانیه از بین بره
هیچ وقت موقع حرف زدن غذا نخورید .
اندروید را با طعم جاوا بنوشید
https://telegram.me/joinchat/BTG1TQNIX1bnCIx1LW5hEA
http://promakers.ir/showthread.php?tid=1...#pid129749
resim



everyday is Ashura, every land is Karbala
پاسخ
#48
اینو تو a بنویس :

کد:
void OnCollisionEnter(Collision Col) // or OnTriggerEnter(Collider Col)
{
if (Col.gameObject.tag == "b")
{
GameObject D = (GameObject)Instantiate(D_Prefab, c.transform.position, Quarternion.identity);
Destroy(D, 5f);
}
}
پاسخ
 سپاس شده توسط raamz110 ، sajjad3011
#49
به کلمه ی Col گیر میداد
متغیر ها رو هم تعریف کردم ولی باز هم به Col گیر میداد
هیچ وقت موقع حرف زدن غذا نخورید .
اندروید را با طعم جاوا بنوشید
https://telegram.me/joinchat/BTG1TQNIX1bnCIx1LW5hEA
http://promakers.ir/showthread.php?tid=1...#pid129749
resim



everyday is Ashura, every land is Karbala
پاسخ
#50
به گیم ابجکتی که اسکریپت رو میدین و گیم ابجکت هایی که می خواید برخورد با اونا رو چک کنید باید collider بدید(برای اینکار ابجکت رو در کادر اجزای پروژه یعنی hierarchu انتخاب و سپس در کادر خصوصیات insector روی دکمه ی Add component زده و کلمه ی collider رو تایپ و از لیست کالیدرها یک کالیدر مناسب رو به شی بدید)
تخصص:بیسواد،نوب،نادان
https://cafebazaar.ir/app/ir.s.s.hek.nokh/?l=fa
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.




پاسخ
 سپاس شده توسط moien1 ، raamz110


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
NewText فارسی نویسی در همه ی برنامه ها(صفر تاصد) ali rahimy 0 35 27/10/1396، 12:51 صبح
آخرین ارسال: ali rahimy
Star آموزش یونیتی از سایت یونیتی ali.z 0 218 25/4/1396، 03:49 عصر
آخرین ارسال: ali.z
  آموزش شیدر نویسی در یونیتی قسمت 1 ErfanAhmadi 15 5,774 15/3/1396، 05:53 عصر
آخرین ارسال: mamali me
  آموزش یونیتی از مبتدی تا متوسط برنامه ریزی شده amirhosein.raad 24 4,069 26/2/1396، 08:24 عصر
آخرین ارسال: TakOn1
  پرداخت درون برنامه ای بازار sajjad3011 0 520 4/10/1394، 10:41 عصر
آخرین ارسال: sajjad3011



کاربرانِ درحال بازدید از این موضوع: 2 مهمان
آموزش ساخت بازی با C# آموزش پروژه محور یونیتی Unity آموزش ساخت بازی حدس تصویر
آموزش مدل سازی در Maya آموزش یونیتی Unity- ساخت منو آموزش گنجینه برنامه نویسی اندروید
آموزش مدل سازی با 3Ds Max آموزش متحرک سازی با Unity آموزش گرافیک کامپیوتری با OpenGL
آموزش متحرک سازی در 3Ds Max مجموعه آموزش های ساخت بازی آموزش ساخت بازی در ویژوال بیسیک
● آموزش های رایگان ● تبلیغات دیجیتال هوشمند ● استخدام در فرادرس