«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
یونیتی: تغییر سلاح یا تعویض اسلحه یا قطعات یا بدنه ی ماشین یا سوئیچ_تعویض پلیر :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

برای تغییر سلاح یا تعویض اسلحه یا قطعات یا بدنه ی ماشین یا سوئیچ یا تغییر لباس یا فعال و غیرفعال کردن آبجکت های دلخواه در صحنه چه کنیم؟

برای اینکار از تابع setActive استفاده می کنیم. مثلا اسکریپت زیر رو ببینید. با فشردن کلید 1 و 2و3 روی numpad و یا 1و2و3 زیر کلید های تابعی(fuctional keys) بین قطعات تنظیم شده در پارامترهای ghete1 و ghete2 و ghete3 سوئیچ می کنیم و در هر لحظه یک آیتم را فعال خواهیم کرد.

کد csharp:
//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 تا توی آرایه تنظیم بشه.winking
نکته ی مهم : دقت کنید که موقعت(position) و زاویه ی چرخش(rotation) و مقیاس(scale) تمام قطعات یکی باشه تا بتونید به راحتی قطعات ماشین رو تنظیم کنید و بزرگ بودن یا قطعات خودرو تو هم نرن. برای تغییر سلاح یا تغییر اسلحه اینکار مهم نیستhappy

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

با تشکر از سجاد از پرومیکرز

موافقین ۰ مخالفین ۰ ۹۳/۱۲/۲۱
مدیرکل

نظرات (۲)

سلام.با تشکر از این که مطالب خوبی میزارید.فقط یه سوال برام پیش اومد.این بود که من مثلا تو منو یه کاراکتر دارم،با این کدی که شما دادید لباس یا شمشیرشو مثلا عوض میکنم.ولی تو صحنه خود بازی عوض نمیشه.من از playerprefs استفاده میکردم که یک رو با یه کلید بگیر سیو کن فلان.ولی خیلی طولانی زمان بره.خواستم بدونم راه ساده تری وجود داره.تشکر
پاسخ:
یعنی چی که تو صحنه خود بازی عوض نمیشه؟!
اتفاقا تو صحنه عوض باید بشه.
سلام.باتشکر از زحماتتون.من واسم انجام نمیشه یعنی تو گاراژ رینگ عوض میشه و تا اینجا درسته و رینگ ماشین تغییر کرده حالا توی سین مسایقه که سین جدا از گاراژ هست چیکار کنم که تغییرات انجام شده روی ماشین در گاراژ در مسابقه که سین دوم هست اتفاق بیفته؟ باتشکر.

ارسال نظر

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