private void OnTriggerEnter(Collider other) { if (!entity.IsOwner) { return; } if (other.gameObject.layer.Equals(LayerMask.NameToLayer("GravityField"))) { IObjectState objectState = other.gameObject.GetComponentInParent <IObjectState>(); GravityAttractor gravityAttractor = other.gameObject.GetComponentInParent <GravityAttractor>(); if (gravityAttractorDictionary.ContainsKey(objectState.GetGuid())) { //if it's already in the list we only need to set the time to 0 gravityAttractorDictionary[objectState.GetGuid()] = new KeyValuePair <GravityAttractor, float>(gravityAttractor, 0f); } else { //if it's not already in the list we need to add a new entry gravityAttractorDictionary.Add(objectState.GetGuid(), new KeyValuePair <GravityAttractor, float>(gravityAttractor, 0f)); } } }
private void OnTriggerExit(Collider other) { if (!entity.IsOwner) { return; } if (other.gameObject.layer.Equals(LayerMask.NameToLayer("GravityField"))) { IObjectState objectState = other.gameObject.GetComponentInParent <IObjectState>(); if (other.gameObject.layer.Equals(LayerMask.NameToLayer("GravityField"))) { gravityAttractorDictionary.Remove(objectState.GetGuid()); } } }