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

ساخت بازی

امتیاز موضوع:
  • 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://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://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://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://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://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



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


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش یونیتی از مبتدی تا متوسط برنامه ریزی شده amirhosein.raad 24 2,680 26/2/1396، 08:24 عصر
آخرین ارسال: TakOn1
  پرداخت درون برنامه ای بازار sajjad3011 0 328 4/10/1394، 10:41 عصر
آخرین ارسال: sajjad3011
Big Grin دانلود کتاب فارسی آموزش کامل زبان برنامه نویسی پایتون Teshne 3 1,117 19/2/1394، 06:25 عصر
آخرین ارسال: sajjad3011
Question اسکریپت نویسی در یونیتی به زبان C# soroosh 4 4,534 20/10/1393، 01:38 عصر
آخرین ارسال: Ali-reza8448
  شیدر نویسی در یونیتی : مقدمه lord arthas 1 1,081 23/9/1393، 09:52 عصر
آخرین ارسال: sajjad3011



کاربرانِ درحال بازدید از این موضوع: 1 مهمان