public static ForceFieldTranformComponent GetTransformComponent(Transform weaponTransform) { RaycastHit hit; Quaternion quaternion = Quaternion.Euler(0f, weaponTransform.rotation.eulerAngles.y, 0f); if (!HitToTheGround(weaponTransform, out hit)) { ForceFieldTranformComponent component = new ForceFieldTranformComponent(); Movement movement = new Movement { Position = GetPositionInFrontOfWeapon(weaponTransform), Orientation = quaternion }; component.Movement = movement; return(component); } Movement movement3 = new Movement { Position = hit.point, Orientation = Quaternion.FromToRotation(Vector3.up, hit.normal) * quaternion }; return(new ForceFieldTranformComponent { Movement = movement3 }); }
public void FindLocation(NodeAddedEvent e, ForceFieldEffectNode effect, [Context, JoinByTank] SelfWeaponNode weaponNode) { ForceFieldTranformComponent transformComponent = ForceFieldTransformUtil.GetTransformComponent(weaponNode.weaponInstance.WeaponInstance.transform); effect.Entity.AddComponent(transformComponent); }