public void Play(U3D_Render.EntityView ev) { if (!bInit) { return; } isPlaying = true; if (ev != null) { LastEv = ev; } if (null != EffectList && EffectList.Count > 0) { int cout = EffectList.Count; for (int i = 0; i < cout; i++) { StaticEffectNode n = EffectList[i]; if (n.PlayTimes > 0) { currPlayTimesList[i]++; if (currPlayTimesList[i] > n.PlayTimes) { continue; } } if (n.effect) { n.effect.PlayEffect(false, LastEv == null ? -1 : LastEv.ID, null, null); } } } }
// Use this for initialization public IEnumerator Start() { if (SwitchList.Count <= 0) { bNeedToUpdate = false; } InitAll(); if (!SceneManager.isLoadingScene) { DisableAll(); m_pFSM = GetComponentInParent <BaseStateMachine>(); if (!m_pFSM) { enabled = false; yield break; } m_entityView = EntityFactory.getEntityViewByID(m_pFSM.entityID); } else { //bNeedToUpdate = false; GameUtil.StartCoroutineHelper(this, PreWarmEffect()); } bInit = true; yield return(sections); }
private void SwitchGodEye(U3D_Render.EntityView theSoldier) { Vector3 godDir = new Vector3(0, 0, -1); float realAngle = (float)m_userDesireAngle.y; EnterGodEyeMode(theSoldier.gameObject.transform.position, new Vector3(50.0f, realAngle, 0.0f), godDir, new Vector3(0, 0, 0), 35.0f, 30.0f, false); }
// 是否禁止使用龙珠功能 private bool IsForbitBall() { try { // 是否打开七龙珠功能 if (!GameLogicAPI.isOpenSupperStone()) { return(true); } // 硬编码定死策划数值账号段 U3D_Render.EntityView ev = EntityFactory.MainHeroView; if (ev != null && ev.Property != null) { string strName = Config.AccountName; // 外部及策划数值测试账号,禁止使用七龙珠 if (strName.ToLower().StartsWith("g") || string.Compare(strName, m_strRoleStartName, true) >= 0 && string.Compare(strName, m_strRoleEndName, true) <= 0) { return(true); } } } catch { } return(false); }
public void Play(int entityID) { if (entityID == lastID) { return; } U3D_Render.EntityView view = EntityFactory.getEntityViewByID(entityID); if (null == view || !systemInstance) { return; } if (null == view.SkinControl.CurrentSkinInstance || !view.SkinControl.CurrentSkinInstance.entitySkinConfig) { return; } lastID = entityID; switch (modifyPart) { case ModifyParticlesShapePart.Body: Modify(view.SkinControl.CurrentSkinInstance.entitySkinConfig.BodyRender); break; case ModifyParticlesShapePart.LeftWeapon: Modify(view.SkinControl.CurrentSkinInstance.entitySkinConfig.LeftWeaponRender); break; case ModifyParticlesShapePart.RightWeapon: Modify(view.SkinControl.CurrentSkinInstance.entitySkinConfig.RightWeaponRender); break; } }
public void SetEntitiyView(U3D_Render.EntityView ev) { if (null != cheCor) { StopCoroutine(cheCor); } cheCor = GameUtil.StartCoroutineHelper(this, CheckDistance()); m_entityView = ev; }
private void CheckMainHeroOcclusion() { if (currentSkinId == InvalidSkinID) { return; } if (!isActiveAndEnabled) { return; } if (null == CurrentSkinInstance || null == CurrentSkinInstance.entitySkinConfig) { return; } if (!CurrentSkinInstance.entitySkinConfig.OptimizedNearMainHero) { return; } if (null == m_machine || null == m_machine.creature || m_machine.isHero) { return; } U3D_Render.EntityView mainEv = EntityFactory.getMainPlayer(); if (null == mainEv || null == mainEv.gameObject) { return; } float dragonOptimitzedDistance = 7.0f; //策划控制 //检测距离,如果距离太近,不降低透明度 float dis = CaclDistance(mainEv.gameObject.transform.position, m_machine.creature.position); if (dis < dragonOptimitzedDistance) { OptimizeAlpha(true); } else { OptimizeAlpha(false); } }
protected void UpdateFocusEntity() { if (InputManager.GetKeyUp(KeyCode.Mouse0) && !UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()) //左键切换下一个队友 { if (!UISystem.Instance.IsMouseOverUI()) { U3D_Render.EntityView ev = DataCenter.LogicDataCenter.warOBDataManager.GetRondomEntityView(); if (!U3D_Render.EntityView.isNullOrEmpty(ev)) { soldierCam.SwitchOBSoliderTarget(ev); if (soldierCam.cameraMode != CameraMode.OBHeroLock) { soldierCam.EnableOBMode(true); } } } } }
public void Play(int entityID) { if (!bInit) { return; } if (HostCamera) { if (Initialize.isOnGameRuning && SceneManager.Instance) { if (GameLogicAPI.isMainMap(SceneManager.Instance.m_curMapID)) { Vector3 refPos = Vector3.zero; U3D_Render.EntityView ev = EntityFactory.getEntityViewByID(entityID); if (ev != null && ev.StateMachine) { refPos = ev.StateMachine.transform.position; //距离太远,不播放 if (GameUtil.GetSqrDistanceWithOutY(refPos, HostCamera.transform.position) > 200) { return; } } } } } LateUpdate(); if (HostGo) { HostGo.SetActive(true); } if (RandomPos) { UpdateScreenPos(); CorrectPos.x = Random.Range(posMin.x, posMax.x); CorrectPos.y = Random.Range(posMin.y, posMax.y); } EffectUtily.DispatchRender(hostRender, hostRender.sharedMaterial); PlayMaterialControl(); }
/// <summary> /// 开始PK /// </summary> /// <param name="uidTarget">PK目标</param> /// <param name="pkLoc">PK点坐标</param> public void StartPK(int uidTarget, float[] pkLoc) { SkillCtrl sc = EntityFactory.MainHeroView.SkillCtrl; if (sc != null) { sc.doingPKSelection = false; sc.enablePKSelection = false; } PKPosInfo posInfo = new PKPosInfo(); posInfo.pos = pkLoc; UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_PKINFO_STARTPK, posInfo); UISystem.Instance.ShowWnd(WndID.WND_ID_WAR_FLOATFONTFRAME, true); UTopNameManager.Instance.SetPKMode(EntityFactory.MainHeroID, true); UTopNameManager.Instance.SetPKMode(uidTarget, true); UTopNameManager.PkTargetID = uidTarget; U3D_Render.EntityView targetEV = EntityFactory.getEntityViewByID(uidTarget); if (targetEV == null || targetEV.Property == null) { Trace.LogError("pk target ev or pk target ev property null!"); return; } UBloodManager.Instance.PkTargetID = uidTarget; UBloodManager.Instance.CreatBlood(EntityFactory.MainHeroView, (int)GFxCampTpye.CT_Self); UBloodManager.Instance.CreatBlood(targetEV, (int)GFxCampTpye.CT_Enemy); pkTargetSkinID = 0; pkTargetSkinID = targetEV.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SKIN); pkSrcSkinID = 0; pkSrcSkinID = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SKIN); EffectHelper.LoadPreLight(LightType.ActorSkin, pkTargetSkinID, CachePriority.PRIORITY_MEDIUM); LoadPKRelateSkin(pkTargetSkinID); LoadPKRelateSkin(pkSrcSkinID); m_bIsPK = true; }
void UpdateRendersFromEntityID(int entityID) { if (TargetType != MaterialOpRunType.EntityID || !TargetMaterial || !bInit) { return; } if (EffectNode.UseTestModel) { m_Renders.Clear(); if (!TestModel) { TestModel = GameObject.CreatePrimitive(PrimitiveType.Sphere); TestModel.name += "-Rep-" + gameObject.name; EffectUtily.SaveTestModel(TestModel); } m_Renders.Add(TestModel.GetComponent <Renderer>()); return; } if (entityID == HostEntityID) { return; } Finish(); m_Renders.Clear(); HostEntityID = entityID; if (HostEntityID > 0) { U3D_Render.EntityView view = EntityFactory.getEntityViewByID(HostEntityID); if (null != view && view.SkinControl != null && view.SkinControl.CurrentSkinInstance != null) { if (!view.SkinControl) { return; } if (null == view.SkinControl.CurrentSkinInstance) { return; } EntitySkinConfig sc = view.SkinControl.CurrentSkinInstance.entitySkinConfig; if (AffectBody) { if (sc && sc.BodyRender) { m_Renders.Add(sc.BodyRender); } } if (AffectLeftWeapon) { if (sc && sc.LeftWeaponRender) { m_Renders.Add(sc.LeftWeaponRender); } } if (AffectRightWeapon) { if (sc && sc.RightWeaponRender) { m_Renders.Add(sc.RightWeaponRender); } } if (AffectWings) { if (sc && sc.chibangguadian) { m_Renders.AddRange(sc.chibangguadian.GetComponentsInChildren <SkinnedMeshRenderer>()); } } if (AffectBackPart) { if (sc && sc.BackBodyRender) { m_Renders.Add(sc.BackBodyRender); } } } } SaveOrginalMaterial(); }