static public VFXExpression FixedRandom(VFXExpression hash, VFXSeedMode mode)
        {
            VFXExpression seed = new VFXExpressionBitwiseXor(hash, VFXBuiltInExpression.SystemSeed);

            if (mode != VFXSeedMode.PerComponent)
            {
                seed = new VFXExpressionBitwiseXor(new VFXAttributeExpression(mode == VFXSeedMode.PerParticle ? VFXAttribute.ParticleId : VFXAttribute.StripIndex), seed);
            }
            return(new VFXExpressionFixedRandom(seed));
        }
Exemple #2
0
 static public VFXExpression BuildRandom(VFXSeedMode seedMode, bool constant, RandId randId, VFXExpression seed = null)
 {
     if (seedMode == VFXSeedMode.PerParticleStrip || constant)
     {
         if (seed == null)
         {
             throw new ArgumentNullException("seed");
         }
         return(FixedRandom(seed, seedMode));
     }
     return(new VFXExpressionRandom(seedMode == VFXSeedMode.PerParticle, randId));
 }
 static public VFXExpression FixedRandom(uint hash, VFXSeedMode mode)
 {
     return(FixedRandom(VFXValue.Constant <uint>(hash), mode));
 }