请问一下,可不可以用代码把物理效果打开啊

[复制链接]
1630 |5
派大星 发表于 2023-4-6 18:22:24 | 显示全部楼层 |阅读模式
想做一个可以扔出去的东西,但是生成的物体没有物理效果
回复

使用道具 举报

空伊伊 发表于 2023-4-6 18:28:57 | 显示全部楼层
image.png

可以使用这个接口进行设置StaticMesh | API (ark.online)

示例代码:(注意!物理模拟只能在服务端开启)

if (SystemUtil.isServer()) {

            // 动态创建一个物体
            let obj = await Core.GameObject.asyncSpawn({ "guid": "7669" })
            // 获取物体身上的物理组件
            let staticMesh = obj as Gameplay.StaticMesh

            // 设置obj的位置
            obj.worldLocation = new Type.Vector(0, 0, 300)

            // 延迟10秒后,将物理模拟开启
            setTimeout(() => {
                staticMesh.isSimulatingPhysics = true
            }, 10000);
        }

回复

使用道具 举报

南冥有猫 发表于 2023-4-6 18:29:53 | 显示全部楼层
我记得有个isSimulatingPhysics,你在代码里把这个设置成true,就可以开启物理效果了。
不够现在物理用的不是很舒服,我建议还是自己写代码来模拟一下效果
回复

使用道具 举报

今晚月亮缺席 发表于 2023-4-6 18:31:23 | 显示全部楼层
需要先GameObject把断言断言为StaticMesh:
const object = this.gameObject.getChildByName("物品") as Gameplay.StaticMesh
object.isSimulatingPhysics = true
回复

使用道具 举报

派大星楼主 发表于 2023-4-6 18:32:49 | 显示全部楼层
今晚月亮缺席 发表于 2023-4-6 18:31
需要先GameObject把断言断言为StaticMesh:
const object = this.gameObject.getChildByName("物品") as G ...

那预制体可以变成StaticMesh吗,还是只能用生成出来的物体啊
回复

使用道具 举报

今晚月亮缺席 发表于 2023-4-6 18:36:31 | 显示全部楼层
派大星 发表于 2023-4-6 18:32
那预制体可以变成StaticMesh吗,还是只能用生成出来的物体啊

需要找到预制体里的StaticMesh物体进行设置,通过this.gameObject.getChildByName("物体在预制体里的名称")获取
回复

使用道具 举报

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