2015-10-20 4 views
0

Я использую этот код:Unity Mathf.Clamp выпуск на мобильном

void Update() { 
    if (SystemInfo.deviceType == DeviceType.Desktop) 
    { 
     float xMovement = Input.GetAxis("Horizontal"); 
     this.rb.velocity = new Vector2(xMovement, 0) * this.speed; 


    } else if (SystemInfo.deviceType == DeviceType.Handheld) 
    { 
     if (Input.touchCount > 0) 
     { 
      Touch touch = Input.GetTouch(0); 
      if (touch.position.x > this.westTouchBound && touch.position.x < this.eastTouchBound) 
      { 

      } else 
      { 
       this.speed = this.ballRigidBody.velocity.magnitude * 2.0f; 

       Vector3 location = this.gameCamera.ScreenToWorldPoint(touch.position); 

       Vector3 delta = location - this.transform.position; 
       Vector2 course = new Vector2(delta.x, 0.0f); 
       course.Normalize(); 
       this.rb.velocity = course * speed; 

      } 

     } else 
     { 
      this.rb.velocity = new Vector2(0, 0); 
     } 

    } 
    float eastMax = this.gameController.screenWidth/2.0f - this.gameController.wallThickness - this.gameController.barWidth/2.0f; 
    float westMax = -eastMax; 

    float actualX = Mathf.Clamp(this.transform.position.x, westMax, eastMax); 
    this.transform.position = new Vector3(actualX, this.transform.position.y, this.transform.position.z); 

} 

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

ответ

0

я столкнулся с чем-то, как это раньше,

просто заменить этот

float actualX = Mathf.Clamp(this.transform.position.x, westMax, eastMax); 

с этим

if(actualX < westMax) 
{ 
    actualX = westMax; 
} 
else if(actualX > eastMax) 
{ 
    actualX = eastMax; 
} 

выглядит как зажим сломан или что-то

+1

Это не работает. Я думаю, что проблема - это где-то в физике. – starwars25

 Смежные вопросы

  • Нет связанных вопросов^_^