@Krevetka354

Не работает прыжок в игре на юнити, что не так с кодом c#?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class moveplayer : MonoBehaviour
{
   Animator anim;
   Rigidbody2D rb;
   public GameObject leftbtn ;
   public GameObject rightbtn;
   public GameObject jumpbtn ;
   float posJumpBtn;
   float posbtnright;
   float posbtnleft;
   float run;
   bool whenlook ;





    void Start()
    {
        posbtnright = rightbtn.transform.position.y;
        posbtnleft = leftbtn.transform.position.y;
        posJumpBtn = jumpbtn.transform.position.y;
  
        rb = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();

    }

   
    void Update()
    {    if (posJumpBtn != jumpbtn.transform.position.y){
        rb.AddForce (transform.up * 350f  , ForceMode2D.Impulse);
    }

        if(posbtnleft != leftbtn.transform.position.y){
            run = -600f;
            whenlook = false ;
            Flip();
        }
        else if(posbtnright != rightbtn.transform.position.y){
           run = 600f ;
           whenlook = true;
            Flip();
        }  
        else { run = 0f;
        }
        rb.velocity = new Vector2 (run,rb.velocity.y);

        
    }
   void Flip(){
       if(whenlook == false){
           transform.localRotation = Quaternion.Euler(0,0,0);
       }
   
    if (whenlook == true ){
       transform.localRotation = Quaternion.Euler(0,180,0);
       }
   } 
}
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ReWire_92
void Start()
{
posbtnright = rightbtn.transform.position.y;
posbtnleft = leftbtn.transform.position.y;
posJumpBtn = jumpbtn.transform.position.y;

<b>rb = GetComponent();
anim = GetComponent();</b>

}


Особо не вчитывался, но уже с первых строк виден косяк, в котором скорее всего и проблема. Что Вы пытаетесь присвоить переменным rb и anim? Неверный синтаксис.
Мануал по GetComponent

Вместо кода выше нужно использовать
rb = GetComponent<RigidBody2D>();
anim = GetComponent<Animator>();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы