// Update is called once per frame void Update() { if (SendOnEnter == true) { foreach (GameObject EnteredObject in Sender.GetInteractors(TriggerState.Enter)) { EnteredObject.GetComponent <Transform>().SetPositionAndRotation(Destination.transform.position, Destination.transform.rotation); ResetVelocity(EnteredObject); } } if (SendOnStay == true) { foreach (GameObject EnteredObject in Sender.GetInteractors(TriggerState.Stay)) { EnteredObject.GetComponent <Transform>().SetPositionAndRotation(Destination.transform.position, Destination.transform.rotation); ResetVelocity(EnteredObject); } } if (SendOnExit == true) { foreach (GameObject EnteredObject in Sender.GetInteractors(TriggerState.Exit)) { EnteredObject.GetComponent <Transform>().SetPositionAndRotation(Destination.transform.position, Destination.transform.rotation); ResetVelocity(EnteredObject); } } }
private object GetInstance(EnteredObject registeredObject) { object instance = registeredObject.SingletonInstance; if (instance == null) { var parameters = ResolveConstructorParameters(registeredObject); instance = registeredObject.CreateInstance(parameters.ToArray()); } return(instance); }
private IEnumerable <object> ResolveConstructorParameters(EnteredObject registeredObject) { var constructorInfo = registeredObject.LiveType.GetTypeInfo().DeclaredConstructors.First(); return(constructorInfo.GetParameters().Select(parameter => ResolveObject(parameter.ParameterType))); }