Unity3d关于Particle System is trying to spawn on a mesh with zero surface area的警告
今天测试反馈了个刷屏的警告”Particle System is trying to spawn on a mesh with zero surface area“根据翻译判断是使用了体积为0的mesh,但是当我在网上查找资料的时候,网上说的是因为 ParticleSystem 中 ShapeModule 要求引用的 Mesh 必须开启 Read/Write 选项.
经过我的实验和调试发现并不是这么回事,简单的就是因为某个特效的shape类型选择了mesh然而没有指定一个mesh给他,而且选择的Mode为Edge,如下:
满足以上几个箭头所指的条件后就会不断刷如下警告:
要想去掉这些警告,可以改变shape的类型或者指定一个mesh给它,也可以改变Mode的类型为Vertex都可以去掉这些烦人的警告,具体方法需要根据自己的特效情况设置.
如果需要查找项目中有问题的特效可以使用以下编辑器脚本:
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;public static class MeshToolForParticle
{[MenuItem("Tools/ParticleSystem/FindScenes", false, 20)]public static void FindScenes(){var guids = AssetDatabase.FindAssets("t:Scene");foreach (var guid in guids){string path = AssetDatabase.GUIDToAssetPath(guid);var scene = EditorSceneManager.OpenScene(path, OpenSceneMode.Single);var roots = scene.GetRootGameObjects();bool found = false;foreach (var go in roots){found |= Find(go);}if (found){Debug.Log(path);}}}[MenuItem("Tools/ParticleSystem/FindPrefabs", false, 20)]public static void FindPrefabs(){var guids = AssetDatabase.FindAssets("t:Prefab");foreach (var guid in guids){string path = AssetDatabase.GUIDToAssetPath(guid);var prefab = AssetDatabase.LoadAssetAtPath<GameObject>(path);Find(prefab);}}private static bool Find(GameObject go){bool found = false;var particles = go.GetComponentsInChildren<ParticleSystem>(true);foreach (var particle in particles){if (particle.shape.enabled && particle.shape.shapeType == ParticleSystemShapeType.Mesh &&particle.shape.mesh == null){string prefabPath = PrefabUtility.GetPrefabAssetPathOfNearestInstanceRoot(particle);Debug.LogWarning(string.Format("Path: {0}\nPrefab: {1}", particle.gameObject.GetGameObjectPath(), prefabPath));found = true;}}return found;}
}
把上面的脚本放到项目的Editor目录下然后点击菜单Tools/ParticleSystem/FindPrefabs,即可打印出有问题的特效名称。
Unity3d关于Particle System is trying to spawn on a mesh with zero surface area的警告相关推荐
- Unity3D学习笔记——组件之Effects(效果/特效)——Particle System(粒子系统)
Effects:效果/特效. Particle System:粒子系统.可用于创建烟雾.气流.火焰.涟漪等效果. 在Unity3D 3.5版本之后退出了新的shuriken粒子系统: 添加组件之后 ...
- 详解Unity中的粒子系统Particle System (四)
前言 上一篇我们主要讲解了Shape形状模块,以及Emission发射模块,这是粒子系统中最为重要的两个模块,学会了它们我们足以做出惊艳的效果,比如霰弹枪的发射,蘑菇蛋的冲击波等等.本篇讲的内容依旧重 ...
- Particle System Modules (Shuriken)
Initial Module 初始化模块 This module is always present, cannot be removed or disabled. 这个模块总是存在的,不能删除或禁用 ...
- [Unity2D/3D]Particle System粒子系统/以实现烟雾效果为例
[Unity3D]Particle System粒子系统 首先看一下效果 1.创建一个Particle System:右键Effects->Particle System Pause暂停播放粒子 ...
- Unity中使用粒子特效(Particle System)制作烟花和烛光效果
Unity中使用粒子特效(Particle System)制作烟花和烛光效果 烟花 烛光 烟花 Unity&烟花效果实例 烛光 Unity3d粒子特效:制作火焰效果 由于烛光的火焰是比较稳定的 ...
- Cesium中级教程9 - Advanced Particle System Effects 高级粒子系统效应
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 要了解粒子系统的基础知识,请参见粒子系统入门教程. Weathe ...
- OpenGL Compute Shader Particle System计算着色器粒子系统的实例
OpenGL Compute Shader Particle System计算着色器粒子系统 先上图,再解答. 完整主要的源代码 源代码剖析 先上图,再解答. 完整主要的源代码 #include &l ...
- 详解Unity中的粒子系统Particle System (七)
前言 本篇来讲一讲Collision和Triggers模块,这两个模块主要用于粒子系统与物理世界的交互,一个是碰撞器,另一个是触发器.有了这两个模块我们又可以做出更炫酷的粒子效果啦! 目录 前言 本系 ...
- Unity 特效:Particle System(粒子系统)
创建粒子: 方法一:为空物体添加Particle System组件. 方法二:在Hierarchy视图右击 ---> Effects ---> Particle System I ...
最新文章
- EasyUI-子页面增加显示tabs的一个问题
- iOS 11开发教程(十七)iOS11应用视图之使用按钮接收用户输入
- HTML中transform菜鸟,HTML canvas
- 智能芯片的下一场战争是什么?
- body-content取值的意义
- 英特尔为苹果代工基带芯片 是为X86逆袭移动市场铺路?
- 在SQL Server 2000中使用Transact-SQL建立数据库
- BZOJ3190[JLOI2013] 赛车
- 这可能是最全的JAVA入门教程 ~
- 一帆风顺幼儿园管理软件 v3.01 bt
- PS——规定尺寸的证件照的制作
- 奥运五环的绘制-进阶
- 强制删除windows文件的终极解决方法
- ORB_SLAM2 原理、论文解读、代码流程
- 移动硬盘在计算机中不显示数据能恢复,移动硬盘在电脑上不显示怎么办?分享常用电脑知识...
- idea项目相关错误与常用操作教程
- 软件设计师必考精华 - 多媒体、信息安全、法律
- 不同软件求解超导温度用的方程
- Spring HikariDataSource连接MySQL8.0
- 摔倒检测+yolov5