Esempio n. 1
0
        private void Update()
        {
            if (!_visible)
            {
                return;
            }
            var job = new WaveJob
            {
                Size                = new int2(Dimensions.x, Dimensions.y),
                Time                = Time.time,
                Vertices            = _vertices,
                NoiseScale          = NoiseScale,
                NoiseSize           = NoiseSize,
                VerticesCur         = _newVerticesJobArray,
                Gap                 = Gap,
                Period              = Period,
                Speed               = Speed,
                WaveSize            = WaveSize,
                WrinkleFrequency    = WrinkleFrequency,
                WrinkleSize         = WrinkleSize,
                Position            = transform.position,
                NoiseMovementVector = NoiseMovementVector
            };

            job.Schedule(_vertices.Length, 1).Complete();

            job.VerticesCur.CopyTo(_newVertices);
            _seaMesh.vertices = _newVertices;

            // Makes the lighting better :D
            _seaMesh.RecalculateNormals();
        }
    public override void Tick()
    {
        m_jobHandle.Complete();

        m_job          = new WaveJob();
        m_job.ditances = m_distanceArray;
        m_job.time     = Time.realtimeSinceStartup;
        m_job.speed    = m_waveSpeed;
        m_jobHandle    = m_job.Schedule(m_transformAccessArray);
    }
Esempio n. 3
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            var job = new WaveJob
            {
                positions = m_componentGroup.GetComponentDataArray <Position>(),
                waveDatas = m_componentGroup.GetComponentDataArray <PureWave>(),
                time      = Time.realtimeSinceStartup
            };

            var jobHandle = job.Schedule(m_componentGroup.CalculateLength(), 64, inputDeps);

            return(jobHandle);
        }
    void Update()
    {
        m_LocalTime += Time.deltaTime * 2.0f;
        UpdateWaveSourcePositions();
        var job = new WaveJob {
            vertices = m_Vertices, waveSourcePositions = m_WaveSourcePositions, time = m_LocalTime
        };

        if (!useJobs)
        {
            for (int i = 0; i < m_Vertices.Length; i++)
            {
                job.Execute(i);
            }
        }
        else
        {
            job.Schedule(m_Vertices.Length, 16).Complete();
        }
        m_Mesh.SetVertices(m_Vertices);
        m_Mesh.RecalculateNormals();
    }
Esempio n. 5
0
 public float GetHeight(Vector3 location)
 {
     return(WaveJob.GetHeight(new float2(location.x, location.z), new int2(Dimensions.x, Dimensions.y),
                              Time.time, NoiseSize, NoiseScale, Period, Speed, WaveSize, NoiseMovementVector));
 }