2014-02-03 2 views
0

Im делает игру Drag-n-drop и задается вопросом, как я могу сохранить позицию игрового объекта, а затем возвращать объект в эту позицию, когда OnMouseUp запускается. Это предполагается добавить к нескольким объектам.Возврат GameObject к исходной позиции после OnMouseUp C#

В настоящее время я использую это для событий мыши, и это работает очень хорошо.

void OnMouseDown() 
     { 
     screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position); 
     offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z)); 
     Debug.Log("Clicked "+gameObject.name); 
     } 
public void OnMouseDrag() 
     { 
     Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z); 
     Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint)+offset; 
     } 
void OnMouseUp() 
     { 
     Debug.Log("Returning gameobject to startposition"); 
     } 

Что мне делать, чтобы вернуть объект в исходное положение, когда OnMouseUp. Been ищет способы сделать это, но я не могу найти sulution

+1

Вам нужно сохранить копию позиции объекта, когда вы начинаете перетаскивание (по моему мнению, я думаю), а затем по нажатию мыши установите положение объекта в сохраненное положение –

ответ

3

Я не знаю Unity, но я принял предположение (так что имена типов и прочее, возможно, потребуется исправить ... также ответ может быть неправильным):

Vector3 _originalPosition; 
void OnMouseDown() 
{ 
    _originalPosition = gameObject.transform.position; 
    screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position); 
    ... 
} 

void OnMouseUp() 
{ 
    gameObject.transform.position = _originalPosition; 
} 
0

Что делать, если вы сделаете пустой GameObject Иерархии, поместите его в нужном положении плеера, сохранить его в качестве переменной, чтобы заставить его двигаться, как игрок движется? Благодаря этому вы можете использовать его transform.position как запись движений, которые сделал игрок.

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