public int GetTouchObjID() { int object_id = -1; float skill_blear_radius = 0.5f; Vector3 touch_pos = new Vector3(position.x, position.y, 0); Ray ray = Camera.main.ScreenPointToRay(touch_pos); RaycastHit hitInfo; GameObject hitGameObj = null; int layermask = (1 << LayerMask.NameToLayer("Terrains")) | (1 << LayerMask.NameToLayer("Character")); SkillControllerInterface player_skill_ctrl = GetControl(); if (null != player_skill_ctrl) { SkillInputData skill_input_data = player_skill_ctrl.GetSkillInputData(SkillTags); if (null != skill_input_data) { skill_blear_radius = skill_input_data.targetChooseRange; } } if (Physics.Raycast(ray, out hitInfo, 200f, layermask)) { Collider[] hitObjs = Physics.OverlapSphere(hitInfo.point, skill_blear_radius, (1 << LayerMask.NameToLayer("Character"))); if (hitObjs.Length > 0) { hitGameObj = hitObjs[0].gameObject; if (null != hitGameObj) { SharedGameObjectInfo targetInfo = LogicSystem.GetSharedGameObjectInfo(hitGameObj); if (null != targetInfo && IsEnemy()) { // camp int camp_self = -1; GameObject goSelf = DashFire.LogicSystem.PlayerSelf; if (null != goSelf) { CharacterCamp camp_s = goSelf.GetComponent <CharacterCamp>(); if (null != camp_s) { camp_self = camp_s.m_CampId; } } CharacterCamp camp_t = hitGameObj.GetComponent <CharacterCamp>(); if (camp_t != null && camp_self != camp_t.m_CampId && targetInfo.Blood > 0) { object_id = targetInfo.m_LogicObjectId; } } } } } if (-1 != object_id && null != hitGameObj) { GfxSystem.PublishGfxEvent("Op_InputEffect", "Input", GestureEvent.OnSingleTap, hitGameObj.transform.position.x, hitGameObj.transform.position.y, hitGameObj.transform.position.z, true, false); } return(object_id); }
protected void SetEndure(GameObject obj, bool isEndure) { CharacterCamp cc = obj.GetComponent <CharacterCamp>(); if (null != cc) { cc.SetEndure(isEndure); } }
// Use this for initialization void Start() { m_SkillManager = gameObject.GetComponent <SkillManager>(); SkillCollider[] skill_colliders = gameObject.GetComponentsInChildren <SkillCollider>(); foreach (SkillCollider co in skill_colliders) { co.SetColliderManager(this); } m_ImpactSystem = new ImpactSystem(); m_CampInfo = gameObject.GetComponent <CharacterCamp>(); }
public void Remove(CharacterCamp camp, GameObject obj) { switch (camp) { case CharacterCamp.enemy: enemies.Remove(obj); uiController.AddKillNum(); break; case CharacterCamp.comrades: comrades.Remove(obj); break; } }
private void SendImpactWithOutDamage(GameObject target, ImpactInfo impactInfo) { SharedGameObjectInfo targetInfo = LogicSystem.GetSharedGameObjectInfo(target); CharacterCamp info = target.GetComponent <CharacterCamp>(); if (null != info && info.m_IsEndure && IsBreakEndure(impactInfo)) { info.SetEndure(false); } if (null != info && info.m_IsEndure) { } else { if (CanBreakSkill(target)) { BreakCurSkill(target); if (null != targetInfo && targetInfo.Blood > 0) { switch (impactInfo.m_Type) { case ImpactType.HitFly: SendHitFlyImpact(target, impactInfo); break; case ImpactType.Stiffness: SendStiffnessImpact(target, impactInfo); break; case ImpactType.KnockDown: SendKnockDownImpact(target, impactInfo); break; case ImpactType.Grab: SendGrabImpact(target, impactInfo); break; case ImpactType.MicroGHitFly: SendMicroGHitFly(target, impactInfo); break; } } } } }
public bool IsEnimy(GameObject go) { if (go == null) { return(false); } CharacterCamp campinfo = go.GetComponent <CharacterCamp>(); if (campinfo == null) { return(false); } if (m_CampInfo == null) { return(true); } if (m_CampInfo.m_CampId != campinfo.m_CampId) { return(true); } return(false); }
private List <GameObject> FiltUnEndureObj(List <GameObject> list) { List <GameObject> result = new List <GameObject>(); foreach (GameObject obj in list) { if (obj == null) { continue; } CharacterCamp cc = obj.GetComponent <CharacterCamp>(); if (cc == null || cc.m_IsEndure) { continue; } DashFire.SharedGameObjectInfo selfObjInfo = DashFire.LogicSystem.GetSharedGameObjectInfo(obj); if (selfObjInfo == null || selfObjInfo.Blood <= 0) { continue; } result.Add(obj); } return(result); }