Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        //if(Input.GetKeyDown(KeyCode.UpArrow))
        {
            var rigidBody = GetComponent <Rigidbody>();
            if (rigidBody)
            {
                rigidBody.AddRelativeForce(Vector3.forward * 10.0f);
            }
        }

        if (fluidSim)
        {
            Vector3 wake      = transform.position + wakePos;
            Vector3 frontWave = transform.position + frontWavePos;

            /*
             * fluidSim.PushVolume(wake + Vector3.forward, Vector3.down * wakeForce);
             * fluidSim.PushVolume(wake + Vector3.back, Vector3.down * wakeForce);
             *
             * fluidSim.PushVolume(frontWave + Vector3.forward, Vector3.up * frontWaveForce);
             * fluidSim.PushVolume(frontWave + Vector3.back, Vector3.up * frontWaveForce);
             */

            fluidSim.PushVolume(wake, Vector3.down * wakeForce);
            //fluidSim.PushVolume(frontWave, Vector3.up * frontWaveForce);
            fluidSim.DisplaceVolume(frontWave, frontWaveForce / 50.0f);
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (fluidSim)
        {
            float surface = fluidSim.simCollider.size.x * fluidSim.simCollider.size.x;
            uint  count   = (uint)(surface * countPerM2PerSec * Time.deltaTime);

            for (uint i = 0; i < count; i++)
            {
                float px = Random.Range(fluidSim.simCollider.bounds.min.x, fluidSim.simCollider.bounds.max.x);
                float pz = Random.Range(fluidSim.simCollider.bounds.min.z, fluidSim.simCollider.bounds.max.z);
                fluidSim.DisplaceVolume(new Vector3(px, fluidSim.simCollider.bounds.max.y, pz), -strength);
            }
        }
    }