如何正确地在另一个对象之上生成Gameobject?

时间:2015-05-13 08:03:30

标签: unity3d

在Unity中进行2D游戏时,我在尝试在游戏中的平台上生成块时遇到了困难。我不希望该块看起来像浮动或重叠平台。

我似乎无法正确计算。

我目前有这段代码:

public GameObject blockPrefab;
 public GameObject platform;
 public GameObject dummyBlock;

 // Use this for initialization
 void Start () 
 {
     float platformSize = platform.GetComponent<Renderer>().bounds.size.y;
     float blockSize = dummyBlock.GetComponent<Renderer>().bounds.size.y;
     Debug.Log(platformSize.ToString());


     GameObject test = (GameObject)Instantiate(blockPrefab,
                                               new Vector3(platform.transform.position.x, platform.transform.position.y + platformSize/2, platform.transform.position.z),
                                               Quaternion.identity);
 }

这个问题是它以一种与平台重叠的方式产生块,这意味着我对块的y位置的计算是错误的。

我仍然习惯使用Unity的世界坐标系,所以是的。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您传递给public function actionAssignCategories($product, $categories) { $product = Product::findOne($product); $existingCategories = \yii\base\ArrayHelper::getColumn($product->categories, 'category_id'); $removeCategories = array_diff($existingCategories, $categories); $addCategories = array_diff($categories, $existingCategories); foreach ($addCategories as $category) { $category = Category::findOne($category); $product->link('categories', $category); } foreach ($removeCategories as $category) { $category = Category::findOne($category); $product->unlink('categories', $category); } } 的{​​{1}}将成为实例化GameObject的中心,但看起来您正在计算其底部的位置。尝试将块高度的一半添加到Vector3坐标:

Instantiate