コード例 #1
0
        public Particle(Flipbook flipbook, Vector2 trajectory, Vector2 windInfluence, ParticleUpdateConfiguration particleConfiguration) : base(flipbook)
        {
            alpha = 1;

            if (particleConfiguration.Rotate)
            {
                rotatingSpeed = RandomValue * Parameter.GroundParticleMaximumRotatingSpeed;
            }
            if (particleConfiguration.SetScale)
            {
                scalingFactor = RandomValue * Parameter.GroundParticleMaximumScalingFactor;
            }
            if (particleConfiguration.Fade)
            {
                alphaFactor = Parameter.GroundParticleInitialAlphaFactor + (float)Parameter.Random.NextDouble() * 5;
            }

            float randomValue = (float)Parameter.Random.NextDouble();

            float yAccFactor = (particleConfiguration.UseYAcceleration) ? Parameter.GroundParticleInitialYAcceleration - windInfluence.Y : 0;
            float xAccFactor = (particleConfiguration.UseXAcceleration) ? windInfluence.X : 0;

            yMovement = new AcceleratedMovement();
            yMovement.Preset(Parameter.GroundParticleInitialYSpeed + (randomValue * Parameter.GroundParticleMaximumYSpeed * trajectory.Y), yAccFactor);

            xMovement = new AcceleratedMovement();
            xMovement.Preset(randomValue * Parameter.GroundParticleMaximumXSpeed * trajectory.X, xAccFactor);

            initialPosition = flipbook.Position;
        }
コード例 #2
0
 public AcceleratedMovement(int defaultCount = 64)
 {
     self              = this;
     taa               = new TransformAccessArray(defaultCount);
     velocities        = new NativeArray <Vector3>(defaultCount, Allocator.Persistent);
     accelerations     = new NativeArray <float>(defaultCount, Allocator.Persistent);
     target_velocities = new NativeArray <Vector3>(defaultCount, Allocator.Persistent);
     terminated        = new NativeArray <byte>(defaultCount, Allocator.Persistent);
     callbacks         = new List <Action>();
     to_remove         = new List <int>();
 }