public override void OnBuffRemove() { base.OnBuffRemove(); GameplayProxy gameplayProxy = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy; SpacecraftEntity mainPlayer = gameplayProxy.GetMainPlayer(); if (mainPlayer != null) { if (gameplayProxy.CanAttackToTarget(mainPlayer, m_Buff.BuffProperty.GetOwner())) { // 隐身的时候只剩下特效. 如果是敌方隐身, 连特效都看不见了 // 隐身时隐藏船的本体的功能是在VFXReplaceMeshWithSpacecraft里面做的 if (gameplayProxy.CanAttackToTarget(mainPlayer, m_Buff.BuffProperty.GetOwner())) { List <EffectController> vfxList = m_Buff.BuffProperty.GetAllVFXs(); foreach (EffectController iVfx in vfxList) { iVfx.SetCreateForMainPlayer(false); iVfx.PlayFX(); } } m_Buff.BuffProperty.GetPresentation().SetVisibilityOfVFX(true); // 现在创建隐身特效时直接把SkinRoot下面的所有东西都隐藏了. int spacecraftLayer = LayerUtil.GetLayerByHeroType(m_Buff.BuffProperty.GetHeroType(), m_Buff.BuffProperty.IsMain()); LayerUtil.SetGameObjectToLayer(m_Buff.BuffProperty.GetSkinRootTransform().gameObject, spacecraftLayer, true); } } m_Buff.BuffProperty.SetInvisible(false); }
// Token: 0x060017F8 RID: 6136 RVA: 0x00081990 File Offset: 0x0007FB90 public void AssignWeapon(global::LoadoutSlotType slot, BaseWeaponDecorator weapon, IUnityItem item) { if (weapon) { BaseWeaponDecorator baseWeaponDecorator; if (this._weapons.TryGetValue(slot, out baseWeaponDecorator) && baseWeaponDecorator) { UnityEngine.Object.Destroy(baseWeaponDecorator.gameObject); } this._weapons[slot] = weapon; weapon.transform.parent = this.Decorator.WeaponAttachPoint; foreach (Transform transform in weapon.gameObject.transform.GetComponentsInChildren <Transform>(true)) { if (transform.gameObject.name == "Head") { transform.gameObject.name = "WeaponHead"; } } LayerUtil.SetLayerRecursively(weapon.gameObject.transform, this.Decorator.gameObject.layer); weapon.transform.localPosition = Vector3.zero; weapon.transform.localRotation = Quaternion.identity; weapon.IsEnabled = (slot == this.CurrentWeaponSlot); weapon.WeaponClass = item.View.ItemClass; } else { this.UnassignWeapon(slot); } }
// Token: 0x06001F38 RID: 7992 RVA: 0x000149CD File Offset: 0x00012BCD protected override void OnTriggerEnter(Collider c) { if (!base.IsProjectileExploded && LayerUtil.IsLayerInMask(base.CollisionMask, c.gameObject.layer)) { this.Explode(); } }
public override void OnLoopFXLoaded(EffectController vfx) { GameplayProxy gameplayProxy = GameFacade.Instance.RetrieveProxy(ProxyName.GameplayProxy) as GameplayProxy; SpacecraftEntity mainPlayer = gameplayProxy.GetMainPlayer(); if (mainPlayer != null) { if (gameplayProxy.CanAttackToTarget(mainPlayer, m_Buff.BuffProperty.GetOwner())) { // 隐身的时候只剩下特效. 如果是敌方隐身, 连特效都看不见了 List <EffectController> vfxList = m_Buff.BuffProperty.GetAllVFXs(); foreach (EffectController iVfx in vfxList) { // HACK. 如果不加这个if判断, 就会把隐身启动的特效一起隐藏掉 // 这里如果要完善这个逻辑, 需要做较多的工作. 我就直接偷个懒了. if (!iVfx.GetEffectObject().AutoStop) { iVfx.StopAndRecycleFX(true); } } m_Buff.BuffProperty.GetPresentation().SetVisibilityOfVFX(false); LayerUtil.SetGameObjectToLayer(m_Buff.BuffProperty.GetSkinRootTransform().gameObject, LayerTypeID.UnselectableSpacecraft, true); } } }
private void OnLoadModel(GameObject model) { // GameObject model = asyncOperation.Result; Assert.IsNotNull(model, "model is null"); LayerUtil.SetGameObjectToLayer(model, model.transform.parent.gameObject.layer, true); m_HumanAvatarProperty.SetSkinTransform(model.transform); model.transform.rotation = m_HumanAvatarProperty.GetBornServerRotation(); Animator animator = model.transform.GetComponentInChildren <Animator>(); if (animator != null) { SendEvent(ComponentEventName.AvatarLoadFinish, new AvatarLoadFinishEvent() { Animator = animator } ); } int humanLayer = m_HumanAvatarProperty.GetHeroType() == KHeroType.htPlayer ? m_HumanAvatarProperty.IsMain() ? GameConstant.LayerTypeID.MainPlayer : GameConstant.LayerTypeID.HumanOtherPlayer : GameConstant.LayerTypeID.HumanNPC; LayerUtil.SetGameObjectToLayer(model, humanLayer, true); SetSoundListenerTarget(); }
// Token: 0x060010B2 RID: 4274 RVA: 0x00066E48 File Offset: 0x00065048 public void ShowThirdPersonEffect(CharacterConfig player, QuickItemLogic effectType, int robotLifeTime, int scrapsLifeTime, bool isInstant = false) { robotLifeTime = ((robotLifeTime <= 0) ? 5000 : robotLifeTime); scrapsLifeTime = ((scrapsLifeTime <= 0) ? 3000 : scrapsLifeTime); QuickItemSfx original; if (this._effects.TryGetValue(effectType, out original)) { QuickItemSfx quickItemSfx = UnityEngine.Object.Instantiate(original) as QuickItemSfx; quickItemSfx.ID = this.NextSfxId; if (quickItemSfx) { this._curShownEffects.Add(quickItemSfx.ID, quickItemSfx); quickItemSfx.transform.parent = player.transform; quickItemSfx.transform.localRotation = Quaternion.AngleAxis(-45f, Vector3.up); quickItemSfx.transform.localPosition = new Vector3(0f, 0.2f, 0f); quickItemSfx.Play(robotLifeTime, scrapsLifeTime, isInstant); LayerUtil.SetLayerRecursively(quickItemSfx.transform, UberstrikeLayer.IgnoreRaycast); } } else { Debug.LogError("Failed to get effect: " + effectType); } }
/// <summary> /// 对公路网图层进行处理 线程安全 /// 如果有则将其提取到第一个位置 /// 如果没有直接加载 /// </summary> /// <param name="mapControl"></param> public ILayer DealRoutenetLayer(AxMapControl mapControl) { IGroupLayer myGroupLayer = null; int gIndex; int layerIndex; ILayer routeNetLayer = LayerUtil.QueryLayerInMap(mapControl, "公路网", ref myGroupLayer, out layerIndex, out gIndex); //如果公路网的数据没有加载,则直接加载 if (routeNetLayer == null) { routeNetLayer = ShapeSimpleHelper.OpenFile(Common.RouteNetFeaturePath); RouteLayerUtil.SetRouteLayerStyle(routeNetLayer); mapControl.AddLayer(routeNetLayer); } //否则 保证在第一个位置 也就是图层最上面 if (gIndex < 1 && layerIndex == 0) { routeNetLayer.Visible = true; } else { if (myGroupLayer != null) { myGroupLayer.Delete(routeNetLayer); } else { mapControl.Map.DeleteLayer(routeNetLayer); } mapControl.AddLayer(routeNetLayer); } return(routeNetLayer); }
/// <summary> /// 处理空间统计 /// </summary> /// <param name="mapControl"></param> /// <param name="pGeometry"></param> /// <param name="layerName"></param> public void DealFeatureQuery(AxMapControl mapControl, IGeometry pGeometry, string queryStr, string layerName) { IGroupLayer gLayer = null; if (string.IsNullOrEmpty(layerName)) { return; } int gIndex; int layerIndex; IFeatureLayer pFeatureLayer = LayerUtil.QueryLayerInMap(mapControl, layerName, ref gLayer, out layerIndex, out gIndex) as IFeatureLayer; if (pFeatureLayer == null) { return; } IQueryFilter queryFilter = null; IFeatureCursor pFeatureCursor = null; if (string.IsNullOrEmpty(queryStr)) { pFeatureCursor = FeatureDealUtil.QueryFeatureInLayer(pFeatureLayer, pGeometry, ref queryFilter); } else { pFeatureCursor = FeatureDealUtil.QueryFeatureInLayer(pFeatureLayer, queryStr, ref queryFilter); } IList <IFeature> features = FlashFeatureShape(mapControl, pFeatureLayer, pFeatureCursor); ShowFeatureDetail(pFeatureLayer, features, queryFilter); }
/// <summary> /// 加载完成后设置特效Object, 并把当前的特效状态更新给特效Object /// 这个函数设置为public是为了给特效浏览器使用 (SkillEffectBrowser). /// 除此之外, 外部不应该调用这个方法 /// </summary> /// <param name="effect"></param> public void _SetEffectAndUpdateEffectStatus(VFXController effect) { m_VFXController = effect; m_VFXController.CachedTransform.SetParent(CachedTransform, false); m_VFXController.SetEffectController(this); ReplayOperationsCached(); if (m_Status == EffectStatus.Playing) { m_StartTime = Time.time; m_VFXController.PlayFX(m_ForMainPlayer); LayerUtil.SetGameObjectToLayer(gameObject, GameConstant.LayerTypeID.TransparentFX, true); } else if (m_Status == EffectStatus.Stop) { ClearTimer(); m_VFXController.StopFX(true); } else if (m_Status == EffectStatus.Recycled) { // OnEffectLoadComplete里已经处理了 // m_VFXController.StopFX(true); // m_VFXController.ReleaseItem(); } m_OnEffectLoaded?.Invoke(this, usedata); }
public void ClearRouteAnalyst(AxMapControl mapControl) { //清除所有图标 SymbolUtil.ClearElement(mapControl); stopPoints.Clear(); barryPoints.Clear(); barryElements.Clear(); stopElements.Clear(); //清除网络分析图层 for (int i = 0; i < mapControl.LayerCount; i++) { ILayer layer = mapControl.get_Layer(i); INetworkLayer networkLayer = layer as INetworkLayer; INALayer naLayer = layer as INALayer; if (networkLayer != null || naLayer != null) { mapControl.DeleteLayer(i); } } //清除网络数据集 ILayer datalayer = LayerUtil.QueryLayerInMap(mapControl, "网络数据集"); if (datalayer != null) { mapControl.Map.DeleteLayer(datalayer); } IActiveView pActiveView = mapControl.ActiveView; pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null); mapControl.Refresh(); }
private void CheckForGrabbable() { Ray ray = new Ray(transform.position, transform.forward); RaycastHit hit; bool hitObject = Physics.Raycast(ray, out hit, 3f, LayerUtil.GetLayerMask(Layers.GrabbableObject)); // TODO illuminate object }
private bool GroundHitCheck() { Vector3 rayPos = body.transform.position; Ray ray = new Ray(rayPos, Vector3.down); float dist = GetLowerExtent(); const int gridSplit = 3; // Must be odd for now var pos = body.transform.position; for (int x = -(gridSplit - 1) / 2; x < (gridSplit - 1) / 2; x++) { for (int y = -(gridSplit - 1) / 2; y < (gridSplit - 1) / 2; y++) { rayPos.x = pos.x + x * collider.bounds.extents.x; rayPos.z = pos.z + y * collider.bounds.extents.y; ray = new Ray(rayPos, Vector3.down); Layers[] layers = new Layers[] { Layers.Surface, Layers.GrabbableObject }; if (Physics.Raycast(ray, dist, LayerUtil.GetLayerMask(layers))) { return(true); } } } return(false); }
void OnCollisionEnter2D(Collision2D col) { if (LayerUtil.IsInLayerMask(collisionMask, col.gameObject.layer)) { GameState.DecrementHealth(); } }
private void OnTriggerEnter2D(Collider2D collision) { if (LayerUtil.GameObjectInLayerMask(collision.gameObject, m_PlayerLayer)) { m_AudioSource.Play(); collision.gameObject.GetComponent <Rigidbody2D>().AddForce(m_Force, ForceMode2D.Impulse); } }
private void OnTriggerStay2D(Collider2D collision) { if (LayerUtil.GameObjectInLayerMask(collision.gameObject, m_PlayerLayer)) { PlayerController player = collision.GetComponent <PlayerController>(); player.ChangeHealth(-1); } }
private bool GetAllEntitySelectedByVirtualCamera(ref List <SpacecraftEntity> targetList) { MainCameraComponent mainCam = CameraManager.GetInstance().GetMainCamereComponent(); SkillSystemGrow skillGrow = m_PlayerSkillProxy.GetCurrentWeaponSkill().GetSkillGrow(); float range = skillGrow.Range * SceneController.SPACE_ACCURACY_TO_CLIENT; // 粗略的拾取. // 拾取锥体视为一个相机, 把技能射程视为远裁剪面. 根据FOV取远裁剪面的大小, 投射这个大小的Box, 获取所有拾取到的Entity { // 所有粗略裁剪的物体 = Physics.BoxCastAll(投射开始点, 盒子边长, 相机方向, SkillLayer) float halfBoxVerticalSideLength = range * Mathf.Tan(m_ReticleHorizontalFOVParam / m_ReticleAspect * 0.5f * Mathf.Deg2Rad); float halfBoxHorizontalSideLength = halfBoxVerticalSideLength * m_ReticleAspect; // 投射开始的点 = 相机近裁剪面的中心点 + 相机方向 * 盒子边长的一半 Vector3 startPoint = mainCam.transform.position + (mainCam.GetCamera().nearClipPlane + halfBoxVerticalSideLength) * mainCam.GetForward(); RaycastHit[] hitInfos = Physics.BoxCastAll(startPoint, new Vector3(halfBoxHorizontalSideLength, halfBoxVerticalSideLength, halfBoxVerticalSideLength), mainCam.GetForward(), Quaternion.identity, range, LayerUtil.GetLayersIntersectWithSkillProjectile(true)); for (int iHit = 0; iHit < hitInfos.Length; iHit++) { Rigidbody rigidBody = hitInfos[iHit].rigidbody; if (rigidBody == null) { continue; } SpacecraftEntity entity = rigidBody.GetComponent <SpacecraftEntity>(); if (entity != null) { targetList.Add(entity); } } } if (m_VirtualCameraForReticleSelection != null) { // 更新虚拟相机的方向和位置 m_VirtualCameraForReticleSelection.transform.position = mainCam.transform.position; m_VirtualCameraForReticleSelection.transform.rotation = mainCam.transform.rotation; // 更精细的判断. 当前版本仅计算目标中心点是不是在 虚拟相机 里面 for (int iTarget = 0; iTarget < targetList.Count; iTarget++) { Vector3 viewportPos = m_VirtualCameraForReticleSelection.WorldToViewportPoint(targetList[iTarget].transform.position); if (viewportPos.x < 0 || viewportPos.y < 0 || viewportPos.x > 1 || viewportPos.y > 1) { targetList.RemoveAt(iTarget); iTarget--; } } } return(targetList.Count > 0); }
// Token: 0x06001F6D RID: 8045 RVA: 0x00096C6C File Offset: 0x00094E6C protected override void OnCollisionEnter(Collision c) { if (!base.IsProjectileExploded && c.gameObject && LayerUtil.IsLayerInMask(base.CollisionMask, c.gameObject.layer)) { Singleton <ProjectileManager> .Instance.RemoveProjectile(this.ID, true); GameState.Current.Actions.RemoveProjectile(this.ID, true); } }
private void OnTriggerExit2D(Collider2D collision) { if (LayerUtil.GameObjectInLayerMask(collision.gameObject, m_PlayerLayer)) { PlayerController player = collision.GetComponent <PlayerController>(); player.m_NearbyFixables.Remove(this); m_FixIndicatorImage.enabled = false; } }
// Token: 0x0600113C RID: 4412 RVA: 0x00068BD8 File Offset: 0x00066DD8 private void OnTriggerEnterEvent(Collider c) { if (LayerUtil.IsLayerInMask(UberstrikeLayerMasks.GrenadeCollisionMask, c.gameObject.layer)) { this.behaviour.machine.PopState(true); Singleton <ProjectileManager> .Instance.RemoveProjectile(this.behaviour.ID, true); GameState.Current.Actions.RemoveProjectile(this.behaviour.ID, true); } }
// Token: 0x06001282 RID: 4738 RVA: 0x0006E5A4 File Offset: 0x0006C7A4 public static AvatarDecoratorConfig InstantiateRagdoll(AvatarGearParts gear, Color skinColor) { SkinnedMeshCombiner.Combine(gear.Base, gear.Parts); LayerUtil.SetLayerRecursively(gear.Base.transform, UberstrikeLayer.Ragdoll); gear.Base.GetComponent <SkinnedMeshRenderer>().updateWhenOffscreen = true; AvatarDecoratorConfig component = gear.Base.GetComponent <AvatarDecoratorConfig>(); component.SetSkinColor(skinColor); return(component); }
// Use this for initialization void Awake() { #if UNITY_EDITOR LayerUtil.CreateLayer("Units"); LayerUtil.CreateLayer("Terrain"); LayerUtil.CreateLayer("CameraDragLayer"); #endif Camera c = gameObject.GetComponent <Camera>(); c.cullingMask = ~(1 << LayerMask.NameToLayer("Units")); }
void OnCollisionEnter2D(Collision2D col) { if (LayerUtil.IsInLayerMask(collisionMask, col.gameObject.layer)) { lifeEnemy -= 10; if (lifeEnemy <= 0) { Destroy(gameObject); } } }
private PlacematComponent GetPlacemat() { Ray ray = new Ray(transform.position, transform.forward); RaycastHit hit; bool hitObject = Physics.Raycast(ray, out hit, 3f, LayerUtil.GetLayerMask(Layers.ObjectPlacemat)); if (hitObject) { return(hit.collider.gameObject.GetComponentInParent <PlacematComponent>()); } return(null); }
private void OnTriggerEnter2D(Collider2D collision) { if (LayerUtil.GameObjectInLayerMask(collision.gameObject, m_PlayerLayer)) { PlayerController player = collision.GetComponent <PlayerController>(); player.m_NearbyFixables.Add(this); if (IsBroken()) { m_FixIndicatorImage.enabled = true; } } }
/// <summary> /// 强制关闭手表 /// </summary> /// <param name="dealyResetCamera">是否需要延迟关闭相机</param> private void ForceCloseWatch(bool dealyResetCamera) { m_LookAtState = TimeLineState.NONE; m_SelectedIndex = -1; m_WatchKeyHolding = false; ListenHotkeys(true, false); InputManager.Instance.HudInputMap = HotKeyMapID.None; m_WatchPoint = null; m_WatchPanel.gameObject.SetActive(false); SetCinemachineTrack(m_OpenTimeline, null, null, null); SetCinemachineTrack(m_CloseTimeline, null, null, null); m_OpenTimeline.gameObject.SetActive(false); m_CloseTimeline.gameObject.SetActive(false); m_PostEffectScene.gameObject.SetActive(false); m_PostEffectUI.gameObject.SetActive(false); Canvas.worldCamera.gameObject.SetActive(false); Canvas.worldCamera = CameraManager.GetInstance().GetUICameraComponent().GetCamera(); Canvas.worldCamera.cullingMask = 1 << LayerMask.NameToLayer(WATCH_2D_LAYER); Canvas.worldCamera.gameObject.SetActive(true); LayerUtil.SetGameObjectToLayer(Canvas.gameObject, LayerMask.NameToLayer(WATCH_2D_LAYER), true); LayerUtil.SetGameObjectToLayer(m_PostEffectScene, m_PostEffectSceneLayer, false); LayerUtil.SetGameObjectToLayer(m_PostEffectUI, m_PostEffectUILayer, false); UIManager.Instance.ResetPanelFit(this); CinemachineVirtualCamera camera1 = GetOrCreateVirtualCamera(VIRTUAL_CAMERA_NAME_1); CinemachineVirtualCamera camera2 = GetOrCreateVirtualCamera(VIRTUAL_CAMERA_NAME_2); if (dealyResetCamera) { camera2.Follow = camera1.Follow; camera1.enabled = camera2.enabled = false; UIManager.Instance.StartCoroutine(ResetCameraBrainBlend()); } else { camera2.Follow = camera1.Follow = null; camera1.enabled = camera2.enabled = false; } PlayHumanAnimator(false); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void getTilePositionsTest() public virtual void getTilePositionsTest() { foreach (int tileSize in TILE_SIZES) { BoundingBox boundingBox = new BoundingBox(-1, -1, 1, 1); IList <TilePosition> tilePositions = LayerUtil.getTilePositions(boundingBox, (sbyte)0, new Point(0, 0), tileSize); Assert.assertEquals(1, tilePositions.Count); TilePosition tilePosition = tilePositions[0]; Assert.assertEquals(new Tile(0, 0, (sbyte)0, tileSize), tilePosition.tile); Assert.assertEquals(new Point(0, 0), tilePosition.point); } }
private void layerCombobox_SelectedIndexChanged(object sender, EventArgs e) { if (layerCombobox.SelectedIndex > -1) { IGroupLayer gLayer = null; int layerIndex; int gIndex; selectLayer = LayerUtil.QueryLayerInMap(mapControl, layerCombobox.Text, ref gLayer, out layerIndex, out gIndex); this.labelControl2.Text = "select * from " + selectLayer.Name + " where "; UpdateFieldBox(selectLayer); this.queryTxtBox.Text = ""; } }
Flocking GetFlocker(Transform parent) { var flockers = parent.GetComponentsInChildren <Flocking>(); foreach (var f in flockers) { if (LayerUtil.IsInMask(f.gameObject.layer, targetLayer)) { return(f); } } return(null); }
// Token: 0x06001F45 RID: 8005 RVA: 0x000965B8 File Offset: 0x000947B8 protected override void OnTriggerEnter(Collider c) { if (!base.IsProjectileExploded) { if (LayerUtil.IsLayerInMask(UberstrikeLayerMasks.GrenadeCollisionMask, c.gameObject.layer)) { Singleton <ProjectileManager> .Instance.RemoveProjectile(this.ID, true); GameState.Current.Actions.RemoveProjectile(this.ID, true); } base.PlayBounceSound(c.transform.position); } }
/// <summary> /// 设置初始化的公路网样式 似乎加入地图的图层就不能再设置样式了 /// </summary> private void SetInitialRouteNetLayerStyle() { IGroupLayer myGroupLayer = null; int gIndex; int layerIndex; ILayer routeNetLayer = LayerUtil.QueryLayerInMap(this.axMapControl1, "公路网", ref myGroupLayer, out layerIndex, out gIndex); //从配置文件中设置公路网样式 if (routeNetLayer != null) { RouteLayerUtil.SetRouteLayerStyle(routeNetLayer); this.axMapControl1.Refresh(); } }