元器件资源平台适配文件解读

更新记录

时间 作者 更新说明
2021-05-30 康振田 首次更新
2021-06-10 康振田 更新json结构以及文件路径
2021-06-18 康振田 更新资源操作步骤
2021-06-27 康振田 资源适配扩展适配2019并迁移至打包工具
配置的json文件路径:
VlabEquip\Primitive\Element\EleResRefConfig.json
json结构:
{
    "PrefabName":
    {
      "Platform": 
      {
        "NodePath":{
            "Prefab":[resPrefabPath1,resPrefabPath2],
            "Transform": {propertyName1:propertyValues, propertyName1:propertyValues},
            "MeshFilter":{fbxPath:meshFilterName},
            "MeshRenderer":[{index:resMatPath1}],
            "Material":[{index:{ShaderPath:resShaderPath,Property:{propertyName1:propertyValues}}}],
            "BoxCollider": [{index1:{propertyName1:propertyValues, propertyName1:propertyValues}}]
            // "SphereCollider": [{"IsTrigger":true,"MaterialPath":"PhysicMaterial_resPath", "Center":[0,0,0], "Radius":0.5}],
            // "CapsuleCollider": [{"IsTrigger":true,"MaterialPath":"PhysicMaterial_resPath", "Center":[0,0,0], "Radius":0.5,"Height":1, "Direction":0}],
            // // X-Axis = 0,
            // // Y-Axis = 1,
            // // Z-Axis = 2
            // "MeshCollider": [{"IsTrigger":true, "MaterialPath":"PhysicMaterial_resPath", "MeshPath":"Mesh_resPath"}],
            // "ParticlSystem": {}
        }
        "NodePath1":{},
        "NodePath2":{}
      }
    }
}

PrefabName

  1. 元器件预制体的名字[ZhongHaoShiGuanElement]

Platform

  1. PC
  2. Android

NodePath

  1. 要操作的预制体节点路径
  2. 路径以GameObjScale开始

【key】支持的组件名称 Prefab;Transform;MeshFilter;MeshRenderer;Material;BoxCollider

Prefab

  1. 需要加载的资源路径
  2. 路径规范是以ElementResources开头,屏蔽资源后缀
  3. 该资源的父节点默认是挂在在NodePath节点下
  4. 如果NodePath节点下有和该资源路径名一样则会先删除再挂载
  5. 可以挂载多个

Transform

  1. IsDelete :true/false 是否删除该节点, 默认false不删除(可不配置), true是删除
  2. Position :[0,0,0]
  3. Rotation :[0,0,0]
  4. Scale :[0,0,0]

MeshFilter

  1. 【key】:fbx资源路径,
  2. 【value】:fbx下的mesh节点路径(路径不要带根节点)
  3. 可以挂载多个

MeshRender

  1. resMatPath ;材质球的资源路径
  2. 可挂载多个
  3. 可多写不可少写(即:以实际需求为准,有几个写几个)

Material

  1. index : 材质球的索引(挂载的第几个材质)
  2. ShaderPath : 该字段为固定值;材质球引用的shader路径(需要更新可配置,不需要更新则无需配置)
  3. PropertyName : 该字段为固定值;shader当中的属性名称
  4. PropertyValue :属性数值 (暂时支持float类型的数据)

BoxCollider

  1. index :0 (int) 碰撞体的索引(挂载的第几个碰撞体)
  2. IsTrigger :true/false (是否是触发器)
  3. Center :[0,0,0] (位置)
  4. Size :[0,0,0] (大小)

。。。。。。

以中试管为例:
{
    "ZhongHaoShiGuanElement": 
    {
      "PC": 
      {
        "GameObjScale/ShiGuan/ShiGuan_PZT/ShiGuan_Zhong_PZT8":{
            "Prefab":["ElementResource/LabElementPrefabs/ZhongHaoShiGuanElementModel_PC/ZhongHaoShiGuanElement"],
            "Transform": {"IsDelete":false,"Position":[0,0,0],"Rotation":[0,0,0],"Scale":[2,2,2]},
            "MeshFilter":{"ElementResource/LabElementCommon/fbx/ShiGuan_Zhong_PZT":"ShiGuan_Zhong_PZT5"},
            "MeshRenderer":["ElementResource/LabElementCommon/mat/PingShen1","ElementResource/LabElementCommon/mat/PingShen"],
            "Material":[{"0":{"ShaderPath":"ElementResource/LabElementShaders/Bubble","Property":{"_scale":0.5,"_Discard":0.5}}}],
            "BoxCollider": [{"0":{"IsTrigger":true, "Center":[0,1,0], "Size":[1,1,1]}},{"1":{"IsTrigger":true, "Center":[0,1,0], "Size":[1,1,1]}}]
            // "SphereCollider": [{"IsTrigger":true,"MaterialPath":"PhysicMaterial_resPath", "Center":[0,0,0], "Radius":0.5}],
            // "CapsuleCollider": [{"IsTrigger":true,"MaterialPath":"PhysicMaterial_resPath", "Center":[0,0,0], "Radius":0.5,"Height":1, "Direction":0}],
            // // X-Axis = 0,
            // // Y-Axis = 1,
            // // Z-Axis = 2
            // "MeshCollider": [{"IsTrigger":true, "MaterialPath":"PhysicMaterial_resPath", "MeshPath":"Mesh_resPath"}],
            // "ParticlSystem": {}
        }
      },
      "Android":{}
    }
}

操作方法

  1. 资源仓库切到Android分支
  2. 按照各自元器件的需求填写配置文件
    需求:
    1. 指的是Android平台需要修改的地方,如材质球索引,节点删除, 网格替换等,PC和Android通用资源不需要填写
    2. prefab修改完后,把Android与pc不同处记录在配置表中,共同之处提交到git仓库;即prefab提交以pc端资源为主
      注意:
      1. 最好先修改通用之处提交git后,再修改Android
      2. Android修改完只需要提交配置表,不需要把修改的prefab提交。(自己手动Android包资源时,先进行【元器件资源索引】再打包)
  3. 按图操作
  4. 修改完后,prefab不需要推送