Exemplo n.º 1
0
        /// <summary>
        /// 上下キーが押されていて、ツタと重なっていたら、そのツタのインスタンスを返します。
        /// </summary>
        /// <returns></returns>
        public static bool CheckIvyHold()
        {
            float v = Input.GetAxisRaw("Vertical");

            // 上下キーが押されていなければなし
            if (Mathf.Approximately(v, 0f))
            {
                return(false);
            }

            if (v < -0.5f)
            {
                // 下キーの時は、着地していたら移行無し
                Vector3 foot = ChrController.bounds.center;
                foot.y = ChrController.bounds.min.y;
                int goidx = PhysicsCaster.GetPlayerGround(foot, 0.1f);
                if (goidx != -1)
                {
                    return(false);
                }
            }

            IvyInstance = CheckIvyOverlap();
            if (IvyInstance == null)
            {
                return(false);
            }
            if (IsIvyUp())
            {
                return(IvyInstance.Hold());
            }

            return(false);
        }