Esempio n. 1
0
        private ThrowCalculate CalculateThrowAndDistance()
        {
            var     dist     = 0.0f;
            Vector3 posEnd   = Player.m_localPlayer.transform.InverseTransformPoint(VRPlayer.rightHand.transform.position);
            Vector3 posStart = Player.m_localPlayer.transform.InverseTransformPoint(VRPlayer.rightHand.transform.position);

            foreach (Vector3 snapshot in snapshots)
            {
                var curDist = Vector3.Distance(snapshot, posEnd);
                if (curDist > dist)
                {
                    dist     = curDist;
                    posStart = snapshot;
                }
            }

            var throwSpeed = 1f;

            if (VHVRConfig.SpearThrowSpeedDynamic())
            {
                var speedModifier = slowThrowModifier;
                if (dist > fastThrowMinDist)
                {
                    speedModifier = fastThrowModifier;
                }
                else if (dist > mediumThrowMinDist)
                {
                    speedModifier = mediumThrowModifier;
                }
                throwSpeed = Vector3.Distance(posEnd, posStart) * speedModifier;
            }
            return(new ThrowCalculate(posStart, posEnd, throwSpeed));
        }