Понял, объект двигаю следующим образом:
Используется csharp
Vector3 NewPositionV3;
Vector3 OldPositionV3;
void FixedUpdate () {
if(Input.touches[i].phase == TouchPhase.Moved){
if(я попал пальцем на объект){
NewPositionV3 = Camera.mainCamera.ScreenToWorldPoint(new Vector3(Input.touches[i].position.x, Input.touches[i].position.y, 0.0f));
NewPositionV3.z = this.transform.position.z;
OldPositionV3 = this.transform.position;
Vector3 offset = (NewPositionV3 - OldPositionV3);
this.transform.position = this.transform.position + offset;
}
}
объясняю почему я так делаю: дело в том, что на разных устройствах разные разрешения экранов и просто указывать в пикселях смещение я не могу, поэтому смещение постоянно высчитывается в единицах Unity.
И еще раз повторю, если я медленно веду палец то все впорядке, объект точно туда попадает где палец останавливается, если я быстро палец проведу, то объект все равно в место касания "приходит" но с опозданием.
Последний раз редактировалось
powerscin 22 сен 2011, 21:56, всего редактировалось 1 раз.