Переместить прыгающий мяч влево и вправо Unity 3D - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть шар, который непрерывно подпрыгивает, и я хочу переместить его пальцем влево и вправо по оси x, чтобы он следовал за движением пальца по оси X.

Я сделал скрипт ниже, но мяч не двигался пальцем!

Сценарий мяча:

private float deltaX;
private Vector3 pos;
public Camera cam;

public Rigidbody Ball;
public float Speed;
public static float GlobalGravity = -9.8f;
public float GravityScale = 1.0f;
bool isforce = false;

private void Start(){

    Ball = GetComponent<Rigidbody>();
    Ball.useGravity = false;

}


private void FixedUpdate(){

    Vector3 gravity = GlobalGravity * GravityScale * Vector3.up;
    Ball.AddForce(gravity, ForceMode.Acceleration);

}

void force (){

    isforce = false;
    Ball.AddForce(Vector3.up * Speed, ForceMode.Impulse);
}

private void Update(){

    if (isforce == true){

        force();
    }

    if(Input.touchCount > 0){

        Touch touch = Input.GetTouch(0);
        Vector3 touchPos = cam.ScreenToWorldPoint(touch.position);
        switch (touch.phase){

            case TouchPhase.Began:
                deltaX = touchPos.x - transform.position.x;
                break;

            case TouchPhase.Moved:
                Ball.MovePosition(new Vector3(touchPos.x - deltaX, transform.position.y, transform.position.z));
                break;

            case TouchPhase.Ended:
                Ball.velocity = Vector3.zero;
                break;
        }
    }
}

private void OnCollisionEnter(Collision collision){

    isforce = true;
}

Есть ли у вас какие-либопредложения?

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