zoukankan      html  css  js  c++  java
  • 如何动态给文件夹中的预制件添加BoxCollider

    UnityEngine.Object[] selObjs = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.DeepAssets);

    for (int i = 0; i < selObjs.Length; i++)
    {
      UnityEngine.Object selObj = selObjs[i];
      string path = AssetDatabase.GetAssetPath(selObj);
      if(path.EndsWith(".prefab"))
      {
        var targetComponent = AssetDatabase.LoadAssetAtPath<GameObject>(path);
        if (targetComponent.GetComponent<BoxCollider>())
          return;
        BoxCollider collider = targetComponent.AddComponent<BoxCollider>();
        SkinnedMeshRenderer meshReader = targetComponent.GetComponentInChildren<SkinnedMeshRenderer>();
        collider.size = new Vector3(meshReader.bounds.extents.x * 2, meshReader.bounds.extents.z * 2, meshReader.bounds.extents.z * 2);
        collider.center = new Vector3(meshReader.bounds.center.x , meshReader.bounds.center.y, meshReader.bounds.center.z );
      }
    }

    注:通过获取meshReader.bounds 的数据来生成BoxCollider 的大小和位置

  • 相关阅读:
    Oracle 查看表空间的使用情况SQL语句
    汇总查询
    conky配置2
    数据库更新
    weka简介和回归转自chinakdd
    子查询
    ubuntu常用命令
    查询
    数据库中的连接
    测试用的数据库表及其数据
  • 原文地址:https://www.cnblogs.com/gwen-/p/14000761.html
Copyright © 2011-2022 走看看