Почему мяч падает, когда я нажимаю ЛКМ? - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь заставить "Контроллер от первого лица" взорваться (взлететь), когда я нажимаю левую кнопку мыши, но мой мяч падает

Это для Unity 4.5.5 (мой ноутбук не работает с версиями Unity 5.x.x)

using UnityEngine;
using System.Collections;

public class eeeboi : MonoBehaviour {
    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    private Vector3 moveDirection = Vector3.zero;
    public float radius;
    public float force;

void Blow () {
    Collider[] col = Physics.OverlapSphere (transform.position, radius);
    foreach (Collider c in col) {
        if (c.name != "Plane"){
            c.GetComponent<Rigidbody>().AddExplosionForce (force, transform.position, radius);
        }
    }
}

void Update() {
    CharacterController controller = GetComponent<CharacterController> ();

    if (controller.isGrounded) {
        moveDirection = new Vector3 (Input.GetAxis ("Horizontal"), 0, Input.GetAxis ("Vertical"));
        moveDirection = transform.TransformDirection (moveDirection);
        moveDirection *= speed;

        if (Input.GetButton ("Jump"))
            moveDirection.y = jumpSpeed;
    }

    moveDirection.y -= gravity * Time.deltaTime;
    controller.Move (moveDirection * Time.deltaTime);

    if (Input.GetMouseButtonDown (0)) {
        Blow ();
        }
    }
}

Я ожидал, что «Контроллер от первого лица» взлетит, когда мой мяч окажется под ним, но мой мяч упадет, ничего не двигаясь.

1 Ответ

1 голос
/ 23 мая 2019

Я полагаю, что вашему AddExplosionForce методу требуется, чтобы четвертый аргумент был ненулевым, скажем, 3.0F, как в следующем примере : AddExplosionForce(power, explosionPos, radius, 3.0F);

Также попробуйте использовать Debug.Log метод для отладки.Надеюсь, это поможет!

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