Example #1
0
        void SelectKey()
        {
            //Operater(コントローラー)と一番っ距離が近いキーを操作対象とする
            if (controllerInput.GetControllerTriggerDown(ControllerSide))
            {
                float mindist = OperatableKeys.Min(x => Vector3.Distance(x.collider.transform.position, transform.position));

                InOperationKey = OperatableKeys.First(x => Vector3.Distance(x.collider.transform.position, transform.position) == mindist);
                InOperationKey.FlickKey.OnFlickStart(this);
                InOperationKey.InOperation = true;
            }
        }
Example #2
0
        void ReleaseKey()
        {
            if (InOperationKey == null)
            {
                return;
            }

            if (controllerInput.GetControllerTriggerUp(ControllerSide))
            {
                InOperationKey.FlickKey.OnFlickEnd(this);

                OperatableKeys.RemoveAll(key => key == InOperationKey);
                InOperationKey = null;
            }
        }
Example #3
0
        void OnTriggerStay(Collider collider)
        {
            IFlickKeyAction flickkey = collider.GetComponent <IFlickKeyAction>();

            if (flickkey == null)
            {
                return;
            }

            if (!OperatableKeys.Any(key => key.collider == collider))
            {
                Keyinfo info = new Keyinfo();
                info.collider    = collider;
                info.FlickKey    = flickkey;
                info.InOperation = false;
                OperatableKeys.Add(info);
            }
        }