У меня есть шар, который непрерывно подпрыгивает, и я хочу переместить его пальцем влево и вправо по оси 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;
}
Есть ли у вас какие-либопредложения?