مهمان عزیز خوش‌آمدید. ورود عضــویت


یه مشکل در تست بازی
#11
بسیار ممنون
برای ظهور و سلامتی امام زمان صلوات بفرستید
 
پاسخ دهید
 سپاس شده توسط:
#12
(1397/5/18، 10:53 عصر)mahdi_R8095 نوشته: شما یه متغیر ریجید بادی و یه متغیر گیم آبجکت بسازید
پرفب تون رو که به همون متغیر گیم آبجکت نسبت بدید، بعد از اون تو کد با استفاده از GetComponent کلاس ریجید بادی پرفب تون رو به متغیر ریجید بادی نسبت بدید.

بعدش میتونید با استفاده از متد Instantiate گیم آبجکت تون رو تو بسازید، و بعدش با استفاده از متغیر ریجید بادی تون که به کلاس فیزیک پرفب تون نسبتش دادید، پرفب تون رو به حرکت در بیارید.

این کد احتمالا بتونه کارتون رو راه بندازه


کد:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour {

    public GameObject gameObject;
    Rigidbody bullet;
    public Vector3 vec;

    void Start () {
        
    }

    void Update () {

        bullet = gameObject.GetComponent <Rigidbody> ();

        if (Input.GetKeyDown(KeyCode.Space)) {

            Instantiate (gameObject);
            bullet.AddForce (vec);
        }
    }
}

سلام دوست عزیز الان این کد گلوله ایجاد میکنه ولی در مکان گیم آبجکت نیست بلکه در مبدا هست
برای ظهور و سلامتی امام زمان صلوات بفرستید
 
پاسخ دهید
 سپاس شده توسط:
#13
من تو پروژه ام تفنگ که نداشتم که بخوام مختصات نوکش رو تو کد بزارم. همینجوری مختصات مبدا رو بهش دادم، حالا شما میتونید همون مختصات نوک تفنگ رو بهش بدید
 
پاسخ دهید
 سپاس شده توسط:
#14
من بار اوله که دارم کد نویسی میکنم میشه بیشتر توضیح دهید ممنون
برای ظهور و سلامتی امام زمان صلوات بفرستید
 
پاسخ دهید
 سپاس شده توسط:
#15
خیلی خب باشه، من یه بار کدم رو به طور کلی توضیح میدم

من اول کد سه تا متغیر تعریف کردم.
یه متغیر پابلیک GameObject برای نسبت دادن پرفب مون به اون به نام gameObject.
یه متغیر Rigidbody برای نسبت کامپوننت ریجید بادی پرفب مون به اون به نام bullet.
و یه متغیر پابلیک از نوع Vector3 که بتونیم مقدارش رو به متد AddForce بدیم تا به گلوله مون نیرو وارد کنه به نام vec.

تو متد Start که هیچی ننوشتیم.

تو متد Update اولین کدمون اینه که کاموپننت ریجید بادی متغیر gameObject مون رو به متغیر bullet نسبت بده.


تو کد بعدی یه شرط به کد اضافه کردیم به این صورت که اگه کلید space فشار داده شد اتفاقات داخل شرط رخ بده.

اولین کد داخل شرط متد Instatiate هستش.
این متد ورودی های زیادی داره که من توی کد فقط گفتم متغیر گیم آبجکت مون رو (همون پرفب مون رو) تو مبدا مختصات بازی ایجاد کنه.
یکی از ورودی های این متد گیم آبجکت، مختصات گیم آبجکت و میزان چرخش (rotation) اونه که اینجا بدرد مون میخوره.

شما میتونید یه متغیر دیگه از نوع Vector3 درست کنید مثلا با نام pos و بهش یه مقداری بدید و بوسیله ی اون مختصات گیم آبجکت تون رو هر جا که میخواید تعیین کنید، میزان چرخش گیم آبجکت رو میتونید میزان اولیه ی چرخش گیم آبجکت قرار بدید.

کد:
Instantiate (gameObject, pos, gameObject.transform.rotation);


در نهایت تو خط بعدیش گفتیم که وقتی پرفب ما تو بازی تشکیل شد با مقدار ورودی که بهش دادیم (متغیر vec) به گیم آبجکت ما نیرو وارد کنه.
 
پاسخ دهید
 سپاس شده توسط: alireza24
#16
مرسی ممنون کار کرد  سپاس فراوان
برای ظهور و سلامتی امام زمان صلوات بفرستید
 
پاسخ دهید
 سپاس شده توسط:
  


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  کمک اموزش درون برنامه یونیتی mandani 0 17 دیروز، 07:04 عصر
آخرین ارسال: mandani
  سیستم پارتیکل یونیتی ebrahiminiya 1 49 1397/8/9، 07:44 عصر
آخرین ارسال: developer
  کد خاموش نشدن صفحه گوشی در یونیتی ebrahiminiya 2 79 1397/7/25، 12:41 عصر
آخرین ارسال: ebrahiminiya
  آیا یونیتی برای بازی های تبلیغاتی مناسبه؟ niceboo.ir 1 103 1397/7/19، 05:24 صبح
آخرین ارسال: hesam3
  آیا یونیتی از فایلهای گیف پشتیبانی می کند؟ zolaixa 0 60 1397/7/17، 11:07 عصر
آخرین ارسال: zolaixa

پرش به انجمن: