菜鸟求助(对象创建生成的奇怪现象)

[复制链接]
1130 |2
skond 发表于 2023-5-18 11:09:15 | 显示全部楼层 |阅读模式
创建的延时生成对象一开始会出现在绝对坐标(0,0,0)的位置,到设定的延时时间后才出现在设定位置。
问:设置好的延时对象为啥会一开始就出现在(0,0,0)这里。
代码如图:


@Core.Class
export default class jeo extends Core.Script {

    /** 当脚本被实例后,会在第一帧更新前调用此函数 */
    protected async onStart() {
        //判断C/S端
        if (Util.SystemUtil.isClient()) {
            //直到加载到20946并下载
            await AssetUtil.asyncDownloadAsset("20946")
            AssetUtil.loadAsset("20946")
            let newSound = Core.GameObject.spawnGameObject("20946") as Gameplay.GameObject;
            setTimeout(() => {
                //等待延时
                newSound.setWorldLocation(new Type.Vector(1000,-800, 0))//位置设置
                newSound.ready().then(() => {
                    this.gameObject.play()//等待延时后运行创建
                })
            }, 20000)//延时20秒运行
        }

    }
}


回复

使用道具 举报

叽里咕噜小胡桃 发表于 2023-5-18 11:14:06 | 显示全部楼层
因为所有物体生成的时候你不给它坐标他就默认生成在0,0,0这里
而且你这个接口应该过时了 得用 https://api-docs.ark.online/classes/Gameplay.GameObject.html#spawn 这个接口
image.png
并且在transform这里设置好它初始的位置
我一般会设置在(0,0,-10000)这样玩家看不到的地方
可以这么写

let obj = Gameplay.GameObject.spawn<Gameplay.Mesh>({
guid: "7669",
replicates: true,
transform: new Transform(new Vector(0,0,-10000), Rotation.zero, Vector.one)
});

回复

使用道具 举报

skond楼主 发表于 2023-5-18 11:17:27 | 显示全部楼层
叽里咕噜小胡桃 发表于 2023-5-18 11:14
因为所有物体生成的时候你不给它坐标他就默认生成在0,0,0这里
而且你这个接口应该过时了 得用 https://api- ...

哦,好的,谢谢
回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表