private void _UpdateState() { _currentState = observedItemData.state; }
private void _StateBasedComponentConfiguration(ServiceLocator.ItemStates state) { Debug.Log("Shift in item state. " + gameObject.name + " is now " + state.ToString()); if (state == ServiceLocator.ItemStates.Held) { Destroy(_rb); _trig.enabled = false; _mr.enabled = true; _col.enabled = true; if (observedItemData == _objIntModel.p0_InteractableGrabbed) { transform.SetParent(ServiceLocator.Instance.Character0); } else { transform.SetParent(ServiceLocator.Instance.Character1); } } else if (state == ServiceLocator.ItemStates.Loose) { if (_rb == null) { _rb = gameObject.AddComponent <Rigidbody>(); serializedRigidBody.RestoreRigidbody(_rb); } _rb.isKinematic = false; _trig.enabled = true; _mr.enabled = true; _col.enabled = true; transform.SetParent(_interactiveAssetsTransform); } else if (state == ServiceLocator.ItemStates.Stowed) { if (_rb == null) { _rb = gameObject.AddComponent <Rigidbody>(); serializedRigidBody.RestoreRigidbody(_rb); } _rb.isKinematic = true; _trig.enabled = false; _mr.enabled = false; _col.enabled = false; transform.SetParent(_interactiveAssetsTransform); } else if (state == ServiceLocator.ItemStates.Ejecting) { if (_rb == null) { _rb = gameObject.AddComponent <Rigidbody>(); serializedRigidBody.RestoreRigidbody(_rb); } _rb.isKinematic = false; _trig.enabled = false; _mr.enabled = true; _col.enabled = false; transform.SetParent(_interactiveAssetsTransform); } }