游戏对象在游戏视图 Unity 中的错误位置实例化

gameobject is instantiated in the wrong place in game view Unity

difference between game view and scene view

正如您从图片中看到的那样,我的游戏对象似乎在我的游戏视图中的错误位置实例化,而在我的场景视图中它在正确的位置实例化任何人都可以帮助解决这个问题吗?

编辑:我忘了说这只发生在我的三连拍上 我的常规拍摄效果很好

我的实例化代码:

 void FireLaser()
    {
         _canFire = Time.time + _fireRate;

        if (_tripleShotEnabled == true)
        {

            Instantiate(_tripleShotPrefab, transform.position , Quaternion.identity);
        }
        else
        {
            Instantiate(_laserPrefab, transform.position + new Vector3(0,1.05F,0), Quaternion.identity);
        }
    }

打开子弹所在的预制件,如果你实例化它们,将它们的位置设置为0

打开Triple Shot Prefab 看看位置有没有错 然后将父“Triple Shot”位置设置为 0 试一试

这是因为当您将 Triple_Shot 对象从层次结构拖动到项目的预制件时,激光儿童的位置弄乱了。

使用如下:

将位置重置为最初创建三重镜头预制件时的正确位置。就我而言:

激光有:

Laser2 有:

Laser3 有:

保存这些更改后,然后重新模拟游戏,三连发的位置将更正为玩家的transform.position。