自动摆放 Item 位置

小白,目前有个需求就是找场景中 Item,Item 一多摆起来太麻烦了。我的想法是用脚本把 psd 中的 Item 位置坐标导出 json,可以在运行的时候根据 json 设置位置,但是我想在编辑器里可视化还能针对细调,导出来后怎么在编辑器里不需要运行就能自动根据 json 表更新位置。

编辑器里设置坐标还更新吗,不如写个拖动交互,运行后摆放更新坐标json

1赞

这也是个思路

我今天还用了这个功能:


@ccclass('ToolsImportTree')

export class ToolsImportTree extends Component {

    @property

    private _paste: string = '';

    @property

    public get paste(): string { return this._paste; }

    public set paste(v: string) { this.importFromJson(v); }

    @property(Prefab)

    treePrefab: Prefab = null;

    importFromJson(str) {

        // this.node.destroyAllChildren();

        let obj = JSON.parse(str);

        for (let i = 0; i < obj.length; i++) {

            let item = obj[i];

            let node = instantiate(this.treePrefab);

            node.setParent(this.node);

            node.worldPosition = CocosTools.loadVec3(item.pos);

            node.eulerAngles = CocosTools.loadVec3(item.rot);

            node.scale = CocosTools.loadVec3(item.scale);

        }

    }

}

填完text之后需要擦除,不然会不断的运行

1赞

感谢:pray:,这个给了我思路:拖到 json 表到脚本组件,直接给在子节点设置位置。image|651x339

1.有直接从psd导成prefab 的插件 2.你的这个json如果只是坐标的话,直接写在脚本里定义常量,如果你的这个是关卡配置的话就按照关卡表来配置。3.纯存坐标用个json的这种写法倒是少见