Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        if (true_y == 0)
        {
            foreach (var nrc in GameObject.FindObjectsOfType <NetworkedRootController>())
            {
                if (nrc.hasAuthority)
                {
                    true_y = nrc.true_y;
                }
            }
        }

        Transform       left  = player.avatar.GetHandTransform(OvrAvatar.HandType.Left, OvrAvatar.HandJoint.HandBase);
        Transform       right = player.avatar.GetHandTransform(OvrAvatar.HandType.Right, OvrAvatar.HandJoint.HandBase);
        TimedPlayerData tpd   = new TimedPlayerData {
            data    = player.GetCurrentPlayerData(),
            time    = Time.realtimeSinceStartup,
            left_f  = left.forward,
            right_f = right.forward
        };

        buffer.Add(tpd);
        if (buffer.Count > max_size)
        {
            buffer.RemoveAt(0);
        }

        if (buffer.Count > f * frame_delta_slow)
        {
            var keyframe_slow = keyframes(frame_delta_slow);
            var keyframe_fast = keyframes(frame_delta_fast);

            EarthWave(keyframe_fast);
            LeftFireball(keyframe_fast);
            RightFireball(keyframe_fast);

            RightAir(keyframe_fast);
            RightAir(keyframe_slow);
        }
    }
Beispiel #2
0
 bool right_above_waist(TimedPlayerData tpd)
 {
     return(tpd.data.right_p.y >= waist_frac * true_y + current_terrain_height);
 }