粒子特效发射的模型在手机上丢失

背景 :

我们的特效会发射一些模型做一些动作,比如旋转模型之类,这个时候就需要在ParticleSystem 中引用Mesh在编辑器中没有任何问题,在手机上会出现模型丢失的情况,同一个特效下其他粒子会完整播放,但就是模型丢失了.  具体报错信息如下


ADB报错信息

**No Mesh data avaliable for mesh xxoo on partilce sytsem Parcitcle System.Make Sure Read/Write Enabled is set in the Importer to work on the particle system renderer.**

解决办法

设置模型的Importer 处为 Read/Write; 这样就会导致你的模型在内存中多占了一份内存。

问题虽然粗暴的解决了,但是后来特效又告诉我说其实有些特效也是按照这种方式发射了模型的,但是却没有丢失。经过查证和验证终于在官方找到了合理的解释

解释与验证

Meshes must be read/write enabled to work on the Particle System. 
If you assign them in the Editor, Unity handles this for you.
But if you want to assign different meshes at run time, you need to check the Read/Write Enabled setting in the Import Settings.

 大致意思就是说:如果你在运行的时候去重新指派Mesh 将会要求你设置Mesh 的Read/Write 。 编辑器里面将会帮你自动处理这个操作

这里我简单的修改下我的Mesh 测试代码如下,果然在手机上新加入的Mesh无法在显示了

public class ChangeMesh : MonoBehaviour {
    public ParticleSystemRenderer ps;
	
    private void OnGUI()
    {
        if(GUI.Button(new Rect(0, 0, 200, 200), "change mesh"))
        {
            ps.mesh = Resources.Load<Mesh>("readwritemesh");
        }
    }
}

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值