Unity C# Не могу заставить мои функции работать при вызове между скриптами - PullRequest
0 голосов
/ 17 июня 2020

Я прочитал огромное количество руководств, но не могу заставить их работать. Да, я новичок, так что это может быть очевидно. Я читал, что должен стремиться к тому, чтобы мой код был отдельным и простым. Поэтому я безуспешно пытаюсь написать свои функции в отдельных сценариях, а затем вызывать их в моем основном сценарии движения игрока. Но по какой-то причине, когда я нажимаю кнопку воспроизведения, ничего не происходит. Пожалуйста, помогите мне и простите, пожалуйста, мое невежество.

С уважением

Скрипт 1

public class Movement : MonoBehaviour
{

    public float speed = 5f;
    public Vector2 move;
    public Run run;
    public Walk walk;



    void Update()
    {
        walk.Walki();
        run.Sprint();

    }

Скрипт 2

public class Walk : MonoBehaviour
{
    Rigidbody2D rb;
    float speed;
    public Vector3 move;
    private void Awake()
    {
        rb = GameObject.Find("Player").GetComponent<Rigidbody2D>();
        speed = GameObject.Find("Player").GetComponent<Movement>().speed;
    }
    public void Walki()
    {

        float mLeft = 1f;
        float mRight = -1f;

        Vector3 move = new Vector3(mLeft, mRight, 0f);

        if (Input.GetAxisRaw("Horizontal") > 0)
        {
            rb.transform.position += new Vector3(mLeft, 0f, 0f) * speed * Time.deltaTime;
        }

        if (Input.GetAxisRaw("Horizontal") < 0)
        {
            rb.transform.position += new Vector3(mRight, 0f, 0f) * speed * Time.deltaTime;
        }

    }

1 Ответ

0 голосов
/ 17 июня 2020
void Update(){
     gameObject.GetComponent<Walk>().Walkie();
}

Вы можете попробовать назвать это так и написать Debug.Log ("прогулки") внутри вашего метода Wark ie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...