2015-05-19 65 views
1

什麼,我想要做的是以下幾點:在鼠標的位置放置一個催生對象

  • 點擊我的UI圖標
  • 有與之相關 相應的遊戲對象產卵,並按照我的鼠標指針
  • 當我點擊我的鼠標,這催生了對象的位置設置在我的鼠標指針位於

我一直在這一段時間現在有第兩步完成,但我對如何讓自己產生的對象重置其位置感到迷茫。有人能幫我一把嗎?

我的代碼:

void MoveObject() 
{ 
    if(aliveObject != null) 
    { 
     if (moveObject == true) 
     { 

      Vector3 pos = Input.mousePosition; 
      pos.z = aliveObject.transform.position.z - Camera.main.transform.position.z; 
      aliveObject.transform.position = Camera.main.ScreenToWorldPoint (pos); 
      Vector3 targetPositon = Camera.main.ScreenToWorldPoint (pos); 

     } 
     else if (moveObject == false) 
     { 
      Vector3 p = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y,10.0f)); 
      aliveObject.transform.position = new Vector3(p.x,p.y, 0.0f); 
      Debug.Log("placed"); 
     } 
    } 
} 

void Update() 
{ 

    MoveObject(); 
    if (Input.GetMouseButtonDown(0)) 
    { 
     moveObject = false; 

    } 
} 

public void DecreaseCount() 
{ 
    // called when UI button is clicked 
    if(count > 1) 
     aliveObject = (GameObject)Instantiate(desiredObject,new Vector3(0,0, 0.0f),Quaternion.identity); 

} 
+0

當你說你想重置他們的位置時,你是什麼意思,你想在什麼時候重置他們的位置?當你按下一個鍵時? – Programmer

回答

0

我將如何做到這一點:

Public GameObject spawnObject; 

void Update() 
{ 
    DragObject (spawnObject); 
} 

void DragObject (GameObject item) 
{ 
    if (input.GetMouseButtonDown()) 
    { 
      Vector3 pos = input.mousePosition; 

      if (theItem == null) 
      { 
        GameObject theItem = Instantiate (item, pos, new Quaternion (0f, 0f, 0f, 0f)) as GameObject; 
      } 
      if (theItem != null) 
      { 
        theItem.transform.position = pos; 
      } 
     } 
} 

然後,它是由你來銷燬對象。如果你在Unity中製作一個遊戲對象,然後將它分配給spawnObject,它應該產生它並保持鼠標移動的地方。順便說一下,我在手機上輸入了這個信息,所以請檢查下/上限的情況。

因爲它在更新方法中,所以會鎖定到鼠標的位置。我已經做了一些這種形式來將GameObjects鎖定到我的應用程序中的角色位置。