امتیاز موضوع:
  • 6 رأی - میانگین امتیازات: 4.67
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
کلمات کلیدی
برنامه نویسی و راهکارهایی در یونیتی

برنامه نویسی و راهکارهایی در یونیتی
#51
(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اسلحه بدم چه بايد كنم .

بعد ميخوام عكس اسلحه در بالاي صفحه ديده بشه مثل كانتر
[align=center][b][size=xx-large][font=Verdana][color=#FF0000][align=right][align=center]... در حال ساخت بازي و آموزش ...[/align][/align][/color][/font][/size][/b]
;) (:>
[color=#FFD700][size=xx-large][font=Impact][b][align=right][align=center]... Are making the game and train ...[/align][/align][/b][/font][/size][/color][/align]


[size=xx-large][font=Verdana][i][b][color=#0000CD][align=center].::|_PrOGrAmmeR_|::.[/align][/color][/b][/i][/font][/size]

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



پاسخ
#53
لطفا بگید برای این کار چه کدی لازمه:
دو تا متغیر تعریف بشه (از نوع گیم آبجکت و جوری که از ادیتور وارد کنیم )
مثلا یکیش اسمش :pgm باشه
دومی اسمش: printer باشه
حالا بگیم هر وقت آبجکتی که کد رو بهش میدیم به آبجکتی که تگ walk داره برخورد کنه
در جایی که printer قرار داره pgm ساخته بشه و بعد از پنج ثانیه از بین بره.
هیچ وقت موقع حرف زدن غذا نخورید .
اندروید را با طعم جاوا بنوشید
https://telegram.me/joinchat/BTG1TQNIX1bnCIx1LW5hEA
http://promakers.ir/showthread.php?tid=12706&pid=129749#pid129749
[img]http://digiato.com/wp-content/uploads/2014/09/android.jpg[/img]



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



پاسخ
#55
اونی که من میخوام چی دیگه است ،
میخوام وقتی جسمی که بهش کد رو میدیم به جسمی که برچسب b داره برخورد کرد.
در محلی که جسم c قرار داره
جسمی به اسم d ساخته بشه و بعد از پنج ثانیه از بین بره
هیچ وقت موقع حرف زدن غذا نخورید .
اندروید را با طعم جاوا بنوشید
https://telegram.me/joinchat/BTG1TQNIX1bnCIx1LW5hEA
http://promakers.ir/showthread.php?tid=12706&pid=129749#pid129749
[img]http://digiato.com/wp-content/uploads/2014/09/android.jpg[/img]



everyday is [color=#FF0000]Ashura[/color], every land is [color=#32CD32]Karbala[/color]
پاسخ
#56
اینو تو 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);
}
}
پاسخ
#57
به کلمه ی Col گیر میداد
متغیر ها رو هم تعریف کردم ولی باز هم به Col گیر میداد
هیچ وقت موقع حرف زدن غذا نخورید .
اندروید را با طعم جاوا بنوشید
https://telegram.me/joinchat/BTG1TQNIX1bnCIx1LW5hEA
http://promakers.ir/showthread.php?tid=12706&pid=129749#pid129749
[img]http://digiato.com/wp-content/uploads/2014/09/android.jpg[/img]



everyday is [color=#FF0000]Ashura[/color], every land is [color=#32CD32]Karbala[/color]
پاسخ
#58
به گیم ابجکتی که اسکریپت رو میدین و گیم ابجکت هایی که می خواید برخورد با اونا رو چک کنید باید collider بدید(برای اینکار ابجکت رو در کادر اجزای پروژه یعنی hierarchu انتخاب و سپس در کادر خصوصیات insector روی دکمه ی Add component زده و کلمه ی collider رو تایپ و از لیست کالیدرها یک کالیدر مناسب رو به شی بدید)
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
#59
دادم ولی باز هم نمیشه.
هیچ وقت موقع حرف زدن غذا نخورید .
اندروید را با طعم جاوا بنوشید
https://telegram.me/joinchat/BTG1TQNIX1bnCIx1LW5hEA
http://promakers.ir/showthread.php?tid=12706&pid=129749#pid129749
[img]http://digiato.com/wp-content/uploads/2014/09/android.jpg[/img]



everyday is [color=#FF0000]Ashura[/color], every land is [color=#32CD32]Karbala[/color]
پاسخ
#60
سوال رو در بخش پرسش و پاسخ بذار.(ضمنا خطا رو بگو چیه.)
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ




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