在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的世界坐标系,所以是的。有谁知道如何解决这个问题?
答案 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