فروشگاه اولترا بازی سازی، انیمیشن، جلوه های ویژه و موسیقی

ارسال محتوای دیجیتال شما
نمایش نتایج: از 1 به 2 از 2

موضوع: مشکل در اجرای کد پرش

  1. Top | #1

    عنوان کاربر
    تاریخ عضویت
    آب‍ ۱۳۹۴
    شماره عضویت
    6688
    نوشته ها
    43
    تشکر
    2
    تشکر شده 6 بار در 3 ارسال
    مبلغ حمایت شده توسط کاربر
    0 تومان

    مشکل در اجرای کد پرش

    سلام
    دارم یه بازی به سبک پلتفرمر 2D میسازم
    اما تو کد پرش کاراکترم مشکل ایجاد شده و اونجوری که میخوام اجرا نمیشه
    می خوام کاراکتر فقط دو بار بپره، اما وقتی بازیو پلی میکنم و اسپیس رو میزنم یک بار میپره و دیگه نمیپره! میره رو حالت Doubled و هرچی اسپیس رو میزنیم نمیپره
    من با یونیتی 5 کار میکنم
    اینم کدهام هست:

    using UnityEngine;
    using System.Collections;

    public class moveplayer : MonoBehaviour
    {

    public float speed = 5;
    public float jumpspeed = 15;

    public bool grounded;
    public bool doubled;
    public LayerMask Layer;
    public float radiousePlayer;
    public Transform transformPlayer;

    // Use this for initialization
    void Start()
    {

    }

    void FixedUpdete()
    {
    grounded = Physics2D .OverlapCircle (transformPlayer.position , radiousePlayer , Layer);
    }

    // Update is called once per frame
    void Update()
    {
    if (grounded)
    doubled = false;

    //Jump
    if (Input.GetKeyDown (KeyCode.Space) && grounded) {
    jump ();
    }
    if (Input.GetKeyDown (KeyCode.Space) && !grounded && ! doubled) {
    jump ();
    doubled = true;
    }

    //left
    if (Input.GetKey (KeyCode.A)) {
    GetComponent <Rigidbody2D> ().velocity = new Vector2 (-speed, GetComponent <Rigidbody2D> ().velocity.y);
    }
    //Right
    if (Input.GetKey (KeyCode.D)) {
    GetComponent <Rigidbody2D> ().velocity = new Vector2 (speed, GetComponent <Rigidbody2D> ().velocity.y);
    }
    }
    void jump()
    {
    GetComponent <Rigidbody2D> ().velocity = new Vector2 (GetComponent <Rigidbody2D> ().velocity.x, jumpspeed);
    }
    }
    ویرایش توسط mafh915 : ۱۱-۲۴-۱۳۹۴ در ساعت ۰۲:۵۶ بعد از ظهر

  2. Top | #2

    عنوان کاربر
    تاریخ عضویت
    مه‍ ۱۳۹۵
    شماره عضویت
    7702
    نوشته ها
    14
    تشکر
    1
    تشکر شده 3 بار در 2 ارسال
    مبلغ حمایت شده توسط کاربر
    0 تومان
    مطمئن نیستم ولی چرا برای پرش از addforce استفاده نمی کنی؟
    متغییر grounded و doubled رو فرم به فرم چک کن ببین دقیقا چه موقع مقدارش عوض می شه
    بعد معمولن تابع پرش رو توی Update میزارن و تابع حرکت رو توی FixedUpdate میزارن (چیزی که من توی آموزشهای یونیتی دیدم)

    و نکته اینکه زیاد GetComponent نزن سرعت بازی میاد پایین واسه گوشی خوب نیست

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

بازدید کنندگانی که با جست و جو این صفحه را مشاهده کرده اند:

Nobody landed on this page from a search engine, yet!

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
موسسه فرهنگی هنری رویش © تمامی حقوق برای مرجع فارسی یونیتی محفوظ می باشد.