یه مشکل در تست بازی
#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
مرسی ممنون کار کرد  سپاس فراوان
برای ظهور و سلامتی امام زمان صلوات بفرستید
  پاسخ


 سپاس شده توسط:


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سیستمم مورد نیاز برای یونیتی 5 ^_^ Ali ^_^ 5 4,362 1402/3/5، 10:31 عصر
آخرین ارسال: M.Y
  کمترین حجم بازی محمد 82 3 1,138 1401/11/16، 11:29 صبح
آخرین ارسال: mostafanastary
  خروجی IL2CPP در یونیتی arshia ajoudani 2 1,659 1401/11/11، 11:09 صبح
آخرین ارسال: abedi
  خروجی وب M.Y 0 1,026 1401/8/1، 04:36 عصر
آخرین ارسال: M.Y
  سوال در مورد دوره شوتر اول شخص استاد رجب زاده amin hosseini 1 1,753 1400/12/20، 11:01 عصر
آخرین ارسال: ᔕinaᗪehghani

پرش به انجمن: