Exemplo n.º 1
0
 public override void SetMesh(Mesh mesh)
 {
     if (usePointCache)
     {
         if (mesh.isReadable)
         {
             pCache = PointCacheGenerator.ComputePCacheFromMesh(mesh, pointCacheMapSize, pointCachePointCount, pointCacheSeed, pointCacheDistribution, pointCacheBakeMode);
             vfx.SetTexture("PositionMap", pCache.positionMap);
             if (vfx.HasTexture("NormalMap"))
             {
                 vfx.SetTexture("NormalMap", pCache.normalMap);
             }
             if (!pointCacheSkinnedMeshUpdate)
             {
                 pCache.Dispose();
                 pCache = null;
             }
         }
         else
         {
             Debug.LogError("Cannot access vertices on mesh " + mesh.name + " for generating point cache (isReadable is false; Read/Write must be enabled in import settings)");
         }
     }
     else if (vfx.HasMesh("Mesh"))
     {
         vfx.SetMesh("Mesh", mesh);
     }
 }
Exemplo n.º 2
0
 public override void Despawn()
 {
     if (pCache != null)
     {
         pCache.Dispose();
         pCache = null;
     }
     pointCacheSkinnedMeshRenderer = null;
     CancelInvoke();
     vfx.Stop();
     lookAtTarget = false;
     vfx.enabled  = false;
 }
Exemplo n.º 3
0
        public override void Despawn()
        {
            if (pCache != null)
            {
                pCache.Dispose();
                pCache = null;
            }
            pointCacheSkinnedMeshRenderer = null;
            CancelInvoke();
            vfx.Stop();
            lookAtTarget = false;
            vfx.enabled  = false;
#if ProjectCore
            if (Application.isPlaying)
            {
                EffectModuleVfx.Despawn(this);
                InvokeDespawnCallback();
            }
#endif
        }
Exemplo n.º 4
0
 public override void Despawn()
 {
     if (pCache != null)
     {
         pCache.Dispose();
         pCache = null;
     }
     pointCacheSkinnedMeshRenderer = null;
     CancelInvoke();
     vfx.Stop();
     lookAtTarget = false;
     vfx.enabled  = false;
     InvokeDespawnCallback();
     if (Application.isPlaying)
     {
         Destroy(this.gameObject);
     }
     else
     {
         DestroyImmediate(this.gameObject);
     }
 }
Exemplo n.º 5
0
 public override void SetRenderer(Renderer renderer, bool secondary)
 {
     if ((useSecondaryRenderer && secondary) || (!useSecondaryRenderer && !secondary))
     {
         Mesh mesh = renderer is SkinnedMeshRenderer ? (renderer as SkinnedMeshRenderer).sharedMesh : renderer.GetComponent <MeshFilter>().sharedMesh;
         if (usePointCache)
         {
             if (mesh.isReadable)
             {
                 if (renderer is SkinnedMeshRenderer)
                 {
                     mesh = new Mesh();
                     (renderer as SkinnedMeshRenderer).BakeMesh(mesh);
                     pointCacheSkinnedMeshRenderer = renderer as SkinnedMeshRenderer;
                 }
                 pCache = PointCacheGenerator.ComputePCacheFromMesh(mesh, pointCacheMapSize, pointCachePointCount, pointCacheSeed, pointCacheDistribution, pointCacheBakeMode);
                 vfx.SetTexture("PositionMap", pCache.positionMap);
                 if (vfx.HasTexture("NormalMap"))
                 {
                     vfx.SetTexture("NormalMap", pCache.normalMap);
                 }
                 if (!pointCacheSkinnedMeshUpdate)
                 {
                     pCache.Dispose();
                     pCache = null;
                 }
             }
             else
             {
                 Debug.LogError("Cannot access vertices on mesh " + mesh.name + " for generating point cache (isReadable is false; Read/Write must be enabled in import settings)");
             }
         }
         else
         {
             vfx.SetMesh("Mesh", mesh);
         }
     }
 }