Exemplo n.º 1
0
 private void Awake()
 {
     CharacterArm = GetComponent <CharacterArm>();
 }
Exemplo n.º 2
0
        /// <summary>
        ///     武器チェンジのボタン処理を行う
        /// </summary>
        private void WeaponChangeUpdate()
        {
            void Reset(bool canChange)
            {
                //入れ替えキャンセル
                _changeWeaponTime  = 0;
                _canChangeWeapon   = canChange;
                ChangeTargetWeapon = null;

                if (!canChange)
                {
                    _weaponChangeUI.Hide();
                }

                _weaponChangeUI.SetAmount(0);
            }

            if (ChangeTargetWeapon == null)
            {
                ChangeTargetWeapon = GetNearestWeapon(_settings.EquipWeaponRange);
            }

            if (ChangeTargetWeapon == null)
            {
                Reset(false);
                return;
            }

            _weaponChangeUI.Show();
            _weaponChangeUI.SetControllerType(InputEventProvider is InputKeyBoard);
            var screenPos = Camera.main.WorldToScreenPoint(transform.position);

            ((RectTransform)(_weaponChangeUI.transform)).anchoredPosition = screenPos;

            //武器切り替え
            if (!InputEventProvider.GetChangeBody())
            {
                Reset(true);
                return;
            }

            if (!_canChangeWeapon)
            {
                return;
            }

            if (_changeWeaponTime == 0)
            {
                //入れ替え開始
                Audio.AudioManager.PlaySE("cursor3");
            }

            _changeWeaponTime += Time.deltaTime;
            _weaponChangeUI.SetAmount(_changeWeaponTime / _settings.ChangeWeaponWait);
            if (!(_changeWeaponTime > _settings.ChangeWeaponWait))
            {
                return;
            }
            if (!ChangeTargetWeapon.ReserveAttach())
            {
                Reset(false);
                return;
            }

            //入れ替え完了
            CharacterArm.Attach(ChangeTargetWeapon);
            Reset(false);

            //入れ替え完了音
            Audio.AudioManager.PlaySE("arm-action1");
        }