Exemple #1
0
        protected void Update()
        {
            var dt = Time.deltaTime;
            var t  = Time.timeSinceLevelLoad;

            _throttle = Mathf.Lerp(_throttle, throttle, dt);
            _useFace  = Mathf.Lerp(_useFace, useFace, dt);

            if (_throttle > 0f)
            {
                switch (mode)
                {
                case CrowdMode.Wander:
                    Wander(t, dt);
                    break;

                case CrowdMode.Gather:
                    Gather(t, dt);
                    break;

                case CrowdMode.Flow:
                    Flow(t, dt);
                    break;

                case CrowdMode.Boids:
                    Boids(t, dt);
                    break;

                default:     // Stop
                    break;
                }
            }

            foreach (var op in keys)
            {
                if (Input.GetKeyDown(op.Key))
                {
                    mode = op.Value;
                }
            }

            Update(t, dt);

            emissionOffset += dt * emissionSpeed;
            faceOffset     += dt * faceScrollSpeed;
            Render();
        }
Exemple #2
0
        public override void OnOSC(string address, List <object> data)
        {
            switch (address)
            {
            case "/crowd/throttle":
                throttle = OSCUtils.GetFValue(data, 0);
                break;

            case "/crowd/mode":
                mode = (CrowdMode)OSCUtils.GetIValue(data);
                break;

            case "/crowd/reset":
                Reset();
                break;

            case "/crowd/face/use":
                useFace = OSCUtils.GetFValue(data);
                break;

            case "/crowd/face/speed":
                faceScrollSpeed = OSCUtils.GetFValue(data);
                break;

            case "/crowd/face/random":
                faceRandom = OSCUtils.GetFValue(data);
                break;

            case "/crowd/emission/use":
                useEmission = OSCUtils.GetBoolFlag(data);
                break;

            case "/crowd/emission/rate":
                emissionRate = Mathf.Clamp01(OSCUtils.GetFValue(data));
                break;

            case "/crowd/emission/speed":
                emissionSpeed = OSCUtils.GetFValue(data);
                break;

            case "/crowd/emission/random":
                emissionRandom = OSCUtils.GetFValue(data);
                break;
            }
        }
Exemple #3
0
 protected void Reset()
 {
     Init();
     mode = CrowdMode.Stop;
 }