Мой скрипт контроллера игрока Unity 2D не заставит моего персонажа перевернуться, когда он начнет двигаться в другом направлении - PullRequest
0 голосов
/ 07 марта 2020
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speed;
    public float jumpForce;
    private float moveInput;

    private Rigidbody2D rb;

    private bool facingRight = true;
    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update()
    {

    }

    void FixedUpdate()
    {
        moveInput = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);

        if(facingRight == false && moveInput > 0)
        {
            Flip();
        }
        else if(facingRight == true && moveInput < 0)
        {
            Flip();
        }
    }

    void Flip()
    {
        facingRight = !facingRight;
        Vector3 Scaler = transform.localScale;
        Scaler.x *= -1;
        transform.localScale = Scaler;

    }

}

Я сделал c# скрипт контроллера 2D-игрока, чтобы использовать его в единстве, но когда я нажимаю кнопку play, мой игрок не перевернется и не повернет в другом направлении, когда он будет двигаться в другом направлении. Может кто-нибудь определить, что не так в моем сценарии?

Ответы [ 3 ]

1 голос
/ 07 марта 2020

Unity кажется хорошим выбором для развития вашей игры, но из-за простоты вашей игры, я думаю, будет проще создать ее с помощью Android Studio, проще обрабатывать Character Sprite и Animation. Все зависит от того, какую игру вы хотите создать.

"" "Для примера, ребята, я создаю простую игру SkaterBoard с использованием простой физики гравитации в Android Studio, я был бы очень признателен, если бы вы могли оставить обзор. "" "

(Android Ссылка) Игра Skater Soldier: https://play.google.com/store/apps/details?id=com.fight.exempleclass

1 голос
/ 07 марта 2020

Nevermind. Была просто тупая ошибка. Я вставил устаревший И обновленный компонент скрипта в мой плеер. Да, я знаю, что я тупой.

0 голосов
/ 07 марта 2020

Всегда проверяйте, внимательно ли вы проверяете настройки, значения и место, где вы прикрепили скрипты:)

Я слышал, как пара людей советует не переключаться по шкале и вместо этого предпочитают:

transform.Rotate(0f, 180f, 0f);

Или в зависимости от необходимого игрового процесса / утилиты, используя SpriteRenderer.flipX

На случай, если вам нужны альтернативы.

...