Beispiel #1
0
        public void Initialize(PlayerData playerData)
        {
            _rigidbody = this.GetComponent <Rigidbody>();
            _grabPoint.OnTriggerEnterAsObservable()
            .Select(x => x.GetComponent <IPickableObject>())
            .Subscribe(x => _currentTargetPickableObject = x)
            .AddTo(this);
            _grabPoint.OnTriggerExitAsObservable()
            .Select(x => x.GetComponent <IPickableObject>())
            .Where(x => _currentTargetPickableObject == x)
            .Subscribe(x => _currentTargetPickableObject = null)
            .AddTo(this);

            _attackAreaTrigger.OnTriggerEnterAsObservable()
            .Do(x => Debug.Log(x.name))
            .Select(x => x.GetComponent <IDestructibleObject>())
            .Where(x => x != null)
            .Subscribe(x => _targetDestructibleObjects.Add(x))
            .AddTo(this);

            _attackAreaTrigger.OnTriggerExitAsObservable()
            .Select(x => x.GetComponent <IDestructibleObject>())
            .Where(x => x != null && _targetDestructibleObjects.Contains(x))
            .Subscribe(x => _targetDestructibleObjects.Remove(x))
            .AddTo(this);

            _playerData = playerData;
            _player     = Rewired.ReInput.players.GetPlayer(playerData.ID);
        }
Beispiel #2
0
        public void Grab()
        {
            var pickableObject = _currentTargetPickableObject?.TryPickup();

            if (pickableObject != null)
            {
                _currentPickedObject = _currentTargetPickableObject;
                _currentPickedObject.SetParent(_grabPoint);
                pickableObject.localPosition = Vector3.zero;
            }
        }
Beispiel #3
0
 public void Throw()
 {
     _currentPickedObject.Release(_model.forward * 20.0f);
     _currentPickedObject.SetParent(null);
     _currentPickedObject = null;
 }