Exemple #1
0
        /// <summary>
        /// Save string to file
        /// </summary>
        public static void SaveTextByDelete(Boolean isSave, String path, String info) {
            if (isSave) {
                FileUtil.DeleteFile(path);
                FileUtil.WriteTextByStream(path, info);

                BenLogger.Debug("Save " + path + " Success!");
            }
        }
 /// <summary>
 /// Stop By Tag
 /// </summary>
 public void Stop(string tag) {
     _stopwatch.Stop();
     if (string.IsNullOrEmpty(tag)) {
         BenLogger.Debug("StopWatch Print ElapsedMillseconds: " + _stopwatch.ElapsedMilliseconds);
     } else {
         BenLogger.Debug("Tag: " + tag + " | StopWatch Print ElapsedMillseconds: " + _stopwatch.ElapsedMilliseconds);
     }
 }
 public static string GetDeviceInfo() {
     StringBuilder stringBuilder = new StringBuilder();
     BenLogger.Debug("设备模型deviceModel: " + SystemInfo.deviceModel);
     BenLogger.Debug("设备名称deviceName: " + SystemInfo.deviceName);
     BenLogger.Debug("设备类型(PC电脑,掌上型)deviceType: " + SystemInfo.deviceType);
     BenLogger.Debug("设备唯一标识符 deviceUniqueIdentifier: " + SystemInfo.deviceUniqueIdentifier);
     BenLogger.Debug("操作系统operatingSystem: " + SystemInfo.operatingSystem);
     BenLogger.Debug("系统内存大小MBsystemMemorySize: " + SystemInfo.systemMemorySize);
     return stringBuilder.ToString();
 }
        public static void GetSystemMemoryStatus() {
            MemoryInfo memoryInfo = new MemoryInfo();
            GlobalMemoryStatus(ref memoryInfo);

            long avaliableMb = Convert.ToInt64(memoryInfo.dwAvailPhys.ToString())/1024/1024;
            BenLogger.Debug("FreeMemory: " + Convert.ToString(avaliableMb) + " MB");
            if (avaliableMb<200) {
                BenLogger.Debug("内存不足");
            } else {
                BenLogger.Debug("可以使用");
            }
        }
 public static string GetGraphicsInfo() {
     StringBuilder stringBuilder = new StringBuilder();
     BenLogger.Debug("显卡IDgraphicsDeviceID: " + SystemInfo.graphicsDeviceID);
     BenLogger.Debug("显卡名称graphicsDeviceName: " + SystemInfo.graphicsDeviceName);
     BenLogger.Debug("显卡类型graphicsDeviceType: " + SystemInfo.graphicsDeviceType);
     BenLogger.Debug("显卡供应商graphicsDeviceVendor: " + SystemInfo.graphicsDeviceVendor);
     BenLogger.Debug("显卡供应唯一IDgraphicsDeviceVendorID: " + SystemInfo.graphicsDeviceVendorID);
     BenLogger.Debug("显卡版本号graphicsDeviceVersion: " + SystemInfo.graphicsDeviceVersion);
     BenLogger.Debug("显存大小MBgraphicsMemorySize: " + SystemInfo.graphicsMemorySize);
     BenLogger.Debug("显卡是否支持多线程渲染graphicsMultiThreaded: " + SystemInfo.graphicsMultiThreaded);
     BenLogger.Debug("支持的渲染目标数量graphicsShaderLevel: " + SystemInfo.graphicsShaderLevel);
     return stringBuilder.ToString();
 }
        public static void GetSystemInfo() {
            try {
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.AppendLine(GetDeviceInfo());
                stringBuilder.AppendLine(GetGraphicsInfo());
                stringBuilder.AppendLine(GetProcessorInfo());
                stringBuilder.AppendLine(GetRenderInfo());

                BenLogger.Debug(stringBuilder.ToString());
            } catch (Exception) {
                
                throw;
            }
        }
        public static string GetRenderInfo() {
            StringBuilder stringBuilder = new StringBuilder();
            BenLogger.Debug("支持渲染多少目标纹理supportedRenderTargetCount: " + SystemInfo.supportedRenderTargetCount);
            BenLogger.Debug("是否支持3D(体积)纹理supports3DTextures: " + SystemInfo.supports3DTextures);
            BenLogger.Debug("是否支持获取加速度计supportsAccelerometer: " + SystemInfo.supportsAccelerometer);
            BenLogger.Debug("是否支持计算着色器supportsComputeShaders: " + SystemInfo.supportsComputeShaders);
            BenLogger.Debug("是否支持获取陀螺仪supportsGyroscope: " + SystemInfo.supportsGyroscope);
            BenLogger.Debug("是否支持图形特效supportsImageEffects: " + SystemInfo.supportsImageEffects);
            BenLogger.Debug("是否支持实例化GPU的Draw CallsupportsInstancing: " + SystemInfo.supportsInstancing);
            BenLogger.Debug("是否支持定位功能supportsLocationService: " + SystemInfo.supportsLocationService);
#if !UNITY_5_5
            BenLogger.Debug("是否支持渲染纹理supportsRenderTextures: " + SystemInfo.supportsRenderTextures);
#endif
            BenLogger.Debug("是否支持立方体纹理supportsRenderToCubemap: " + SystemInfo.supportsRenderToCubemap);
            BenLogger.Debug("是否支持内置阴影supportsShadows: " + SystemInfo.supportsShadows);
            BenLogger.Debug("是否支持稀疏纹理supportsSparseTextures: " + SystemInfo.supportsSparseTextures);
#if !UNITY_5_5
            BenLogger.Debug("是否支持模版缓存supportsStencil: " + SystemInfo.supportsStencil);
#endif
            BenLogger.Debug("是否支持用户触摸震动反馈supportsVibration: " + SystemInfo.supportsVibration);

            foreach (RenderTextureFormat type in System.Enum.GetValues(typeof(RenderTextureFormat))) {
                try {
                    BenLogger.Debug("是否支持渲染纹理格式RenderTextureFormat: " + type.ToString() + " | SupportsRenderTextureFormat: " + SystemInfo.SupportsRenderTextureFormat(type));
                } catch (Exception ex) {
                    BenLogger.Debug(ex.Message);
                }
            }

            foreach (TextureFormat type in System.Enum.GetValues(typeof(TextureFormat))) {
                try {
                    BenLogger.Debug("是否支持纹理格式TextureFormat: " + type + " | SupportsTextureFormat: " + SystemInfo.SupportsTextureFormat(type));
                } catch (Exception ex) {
                    BenLogger.Debug(ex.Message);
                }
            }
            return stringBuilder.ToString();
        }
 public static string GetProcessorInfo() {
     StringBuilder stringBuilder = new StringBuilder();
     BenLogger.Debug("处理器的数量processorCount: " + SystemInfo.processorCount);
     BenLogger.Debug("处理器的名称processorType: " + SystemInfo.processorType);
     return stringBuilder.ToString();
 }
        /// <summary>
        /// Get Selection GameObject MeshRenderer Bones
        /// </summary>
        public static Transform[] GetMeshRendererBones(this Transform trans, Transform skinRootTrans) {
            List<Transform> resultBones = new List<Transform>();
            if (trans != null) {
                List<Transform> smrBones = new List<Transform>(), aloneBones = new List<Transform>(), bodyBones = new List<Transform>();
                // All SkinnedMeshRenderer
                foreach (SkinnedMeshRenderer smr in trans.GetComponentsInChildren<SkinnedMeshRenderer>(true)) {
                    smrBones.AddRange(smr.bones);
                }
                smrBones.RemoveNull();
                smrBones = smrBones.Distinct().ToList();
                // Child index
                List<int> childIndexList = new List<int>();
                for (int i = 0; i < smrBones.Count; ++i) {
                    for (int j = 0; j < smrBones.Count; ++j) {
                        if (i != j) {
                            if (smrBones[i] == smrBones[j].parent) {
                                childIndexList.Add(j);
                            }
                        }
                    }
                }
                // Remove the child of the parent in the bonelist
                for (int i = childIndexList.Count - 1; i >= 0; --i) {
                    smrBones.RemoveAt(i);
                }
                // Find the node of bip
                foreach (Transform bone in smrBones) {
                    bool bodyBip = false, aloneBone = false;
                    Transform temp = bone;

                    while (true) {
                        if (temp.name.Equals("Bip001")) {
                            bodyBip = true;
                            break;
                        }
                        // Alone bone root transform
                        if (temp.parent == skinRootTrans) {
                            aloneBone = true;
                            break;
                        }
                        if (temp.parent == null) {
                            BenLogger.Error("Parent is null!");
                            break;
                        }

                        temp = temp.parent;
                    }
                    if (bodyBip) {
                        bodyBones.Add(bone);
                    } else {
                        if (aloneBone) {
                            aloneBones.Add(temp);
                        } else {
                            BenLogger.Debug("Bone < " + bone.name + " > Top Parent is null!");
                        }
                    }
                }
                bodyBones = bodyBones.Distinct().ToList();
                aloneBones = aloneBones.Distinct().ToList();
                resultBones.AddRange(bodyBones);
                resultBones.AddRange(aloneBones);
            }
            return resultBones.ToArray();
        }