| display | Дата: Пятница, 18 Августа 2017, 18:07 | Сообщение # 1 |  
| 
 уже был 
Сейчас нет на сайте 
 
 | Делаю игру для андроид смартфонов. В игре необходимо наклонять карту(у меня для теста это просто растянутый, сплющенный сверху куб) акселерометром смартфона. Наклонять карту нужно вперед/назад и влево/вправо соответственно наклону телефона. Наклон карты акселерометром сделал, но карта наклоняется прерывисто(что ожидаемо при использовании акселерометра). Попытался сгладить наклон(код ниже) - наклон акселерометром стал плавным, но при этом куб часто стал сходить с ума и резко наклоняться/вращаться с сумасшедшей скоростью под какими-то дикими углами. Может кто подскажет, что я делаю не так?
  void Start () { }
  void Update () { float x = Input.acceleration.normalized.x; float y = Input.acceleration.normalized.y; float rotateX; float rotateZ; float rotationDamp = 5.0f; float currentRotationX = transform.eulerAngles.x; float currentRotationZ = transform.eulerAngles.z; float wantedRotationX = x * 500.0f; //Максимальный наклон телефона = 0.2 и -0.2(значения акселерометра) и 100 градусов. 0.2 * 500 = 100 градусов float wantedRotationZ = y * 500.0f; //
  rotateX = Mathf.LerpAngle (currentRotationX, wantedRotationX, rotationDamp * Time.deltaTime); rotateZ = Mathf.LerpAngle (currentRotationZ, wantedRotationZ, rotationDamp * Time.deltaTime);
  rotateX = Mathf.Clamp (rotateX, -100, 100); //максимальные углы наклона = 100 градусов rotateZ = Mathf.Clamp (rotateZ, -100, 100); //
  transform.rotation = Quaternion.Euler(rotateX, 0, rotateZ); }
 |  
| 
 | 
 |    | 
| Ranger | Дата: Пятница, 01 Сентября 2017, 04:10 | Сообщение # 2 |  
 
почти ветеран 
Сейчас нет на сайте 
 
 | Использовать акселерометр для получения положения устройства - плохая идея. тыц
 
  
 
 Сообщение отредактировал Ranger - Пятница, 01 Сентября 2017, 04:10  |  
| 
 | 
 |    |