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


یه مشکل در تست بازی
#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
من تو پروژه ام تفنگ که نداشتم که بخوام مختصات نوکش رو تو کد بزارم. همینجوری مختصات مبدا رو بهش دادم، حالا شما میتونید همون مختصات نوک تفنگ رو بهش بدید
[عکس: CGD.png]
 
پاسخ دهید
 سپاس شده توسط:
#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) به گیم آبجکت ما نیرو وارد کنه.
[عکس: CGD.png]
 
پاسخ دهید
 سپاس شده توسط: alireza24
#16
مرسی ممنون کار کرد  سپاس فراوان
برای ظهور و سلامتی امام زمان صلوات بفرستید
 
پاسخ دهید
 سپاس شده توسط:
  


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  خروجی Mehdi211 2 50 1397/5/25، 01:22 عصر
آخرین ارسال: محمد 82
  ساخت جدول بهترین امتیازات Amirreza-Yousefi 0 19 1397/5/17، 05:06 عصر
آخرین ارسال: Amirreza-Yousefi
  حمله javad094 2 80 1397/5/14، 12:29 عصر
آخرین ارسال: javad094
  انتقال انیمیشن های پیش فرض کاراکتر javad094 0 27 1397/5/13، 10:40 صبح
آخرین ارسال: javad094
  هوش مصنوعی javad094 2 48 1397/5/11، 04:58 عصر
آخرین ارسال: javad094

پرش به انجمن: