public void Gun_Camera_Shake(GUN_TYPE _Gun_Type) { Gun_Type = _Gun_Type; if (_Gun_Type == GUN_TYPE.RIFLE || _Gun_Type == GUN_TYPE.SUB_MACHINGUN || _Gun_Type == GUN_TYPE.HEAVY_MACHINGUN) { Camera_Shake(0.3f, 0.0f); } else if (_Gun_Type == GUN_TYPE.SNIPER) { Camera_Shake_Aim_OJ.position += Vector3.up * 0.5f; } else if (_Gun_Type == GUN_TYPE.PUMP_SHOTGUN) { Camera_Shake(1.3f, 3.0f); } else if (_Gun_Type == GUN_TYPE.DOUBLE_HANDGUN) { Camera_Shake(0.3f, 0.0f); } else if (_Gun_Type == GUN_TYPE.LAUNCHER || _Gun_Type == GUN_TYPE.ROCKET_SKILL) { Camera_Shake(1.9f, 3.0f); } else if (_Gun_Type == GUN_TYPE.THROUGH_SHOT_SKILL) { Camera_Shake(1.0f, 2.0f); MotionBlur_Effect_Init(); } else { Camera_Shake(0.15f, 0.0f); } }
public void GunInit(GUN_TYPE eGunType) { if (m_eGunType == eGunType) { ChangeGun(m_eGunInitType); } }
//어택 데미지 데이터 받기 public void Bot_Damage_Operation(float MY_Total_Damage, Vector3 _ATK_Start_Vec, Vector3 _ATK_Target_Vec, byte _Gun_Type, bool _HeadShot_Check, bool Critical_Check) { //------------------------------------------------------------------------------------------------------------------------------------------------------------------------ MY_HP -= MY_Total_Damage; if (MY_HP <= 0.0f) { MY_HP = 0.0f; } if (MY_HP <= 0.0f && Die_State == DIE_STATE.IDEL) { Die_State = DIE_STATE.ANI_START; Die_Atk_Start_Vec = _ATK_Start_Vec; Die_Atk_Target_Vec = _ATK_Target_Vec; Die_Atk_GunType = _Gun_Type; Game_Script.Bot_Kill_Count++; Game_Script.Bot_Kill_Operation(User_ID, _HeadShot_Check); //-------------------------------------------------------------------------------------- ByteData Send_Buffer = new ByteData(128, 0); //현재 플레이어가 사용하고 있는 유닛의 인덱스 Send_Buffer.InPutByte(Game_Script.Char_Script[Link_Script.i.User_ID].Char_Index); //봇 죽인 데이터 보내기 Net_Script.Send_Bot_Kill_Data(Send_Buffer); //-------------------------------------------------------------------------------------- } //수류탄, 유탄, 자살이 아닐때 캐릭터 맞았을때 터지는 임펙트 안그려준다. if ((GUN_TYPE)_Gun_Type != GUN_TYPE.GRENADE && (GUN_TYPE)_Gun_Type != GUN_TYPE.BOOMER_SKILL && (GUN_TYPE)_Gun_Type != GUN_TYPE.LAUNCHER && (GUN_TYPE)_Gun_Type != GUN_TYPE.SUICIDE) { Char_Hit_Effect_Check = true; Char_Hit_Effect_GunType = (GUN_TYPE)_Gun_Type; Char_Hit_Effect_Vec = _ATK_Target_Vec; } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------ //데미지 숫자 만들어주기 Transform GamePlay_Damage_Transform = Instantiate(Resources.Load("Battle_Prefab/2_UI_Folder/GamePlay_Damage") as GameObject).GetComponent <Transform>(); GamePlay_Damage_Transform.SetParent(GameObject.Find("Canvas").transform); GamePlay_Damage_Transform.localScale = new Vector3(1, 1, 1); GamePlay_Damage_Transform.localPosition = new Vector3(0, 0, 0); GamePlay_Damage_Transform.SetAsLastSibling();//가장 나중에 그려진 레이어로 맞추기 //텍스트 스크립트 초기화 GamePlay_Damage_Transform.GetComponent <Damage_Num_Script>().Make_Init(User_ID, Critical_Check, MY_Total_Damage, Damage_Num_Effect_Dir); if (++Damage_Num_Effect_Dir >= 2) { Damage_Num_Effect_Dir = 0; } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------ }
public void ChangeGun(GUN_TYPE eGunType) { if (m_eGunType != eGunType) { DropGun(); m_eGunType = eGunType; SetGun(); } }
//========================================================================================================================================================== public void Bot_Init() { Char_Team_State = CHAR_TEAM_SATAE.ENEMY_TEAM; Char_Hit_Effect_Check = false; Char_Hit_Effect_GunType = GUN_TYPE.RIFLE; Char_Hit_Effect_Vec = new Vector3(); Auto_Targeting_OJ.SetActive(true); }
//리그돌 연산 시작 void Ragdoll_Start() { Char_Animator.enabled = false; float Force = 400.0f; GUN_TYPE Atk_Gun_Type = (GUN_TYPE)Die_Atk_GunType; if (Atk_Gun_Type == GUN_TYPE.PISTOL || Atk_Gun_Type == GUN_TYPE.REVOLVER || Atk_Gun_Type == GUN_TYPE.DOUBLE_HANDGUN) { Force = 400.0f; } else if (Atk_Gun_Type == GUN_TYPE.PUMP_SHOTGUN || Atk_Gun_Type == GUN_TYPE.AUTO_SHOTGUN || Atk_Gun_Type == GUN_TYPE.SNIPER) { Force = 1000.0f; } else if (Atk_Gun_Type == GUN_TYPE.RIFLE || Atk_Gun_Type == GUN_TYPE.SUB_MACHINGUN || Atk_Gun_Type == GUN_TYPE.HEAVY_MACHINGUN) { Force = 600.0f; } for (int i = 0; i < Ragdoll_Collider_Name.Length; i++) { Bot_Ragdoll_Rigidbody[Ragdoll_Collider_Name[i]].Rigid_Body.isKinematic = false; Bot_Ragdoll_Rigidbody[Ragdoll_Collider_Name[i]].GameObject_OJ.layer = Ragdoll_Die_Layer; } //자살일때 포스 안날린다 if (Atk_Gun_Type == GUN_TYPE.SUICIDE) { return; } if (Atk_Gun_Type == GUN_TYPE.GRENADE || Atk_Gun_Type == GUN_TYPE.BOOMER_SKILL || Atk_Gun_Type == GUN_TYPE.LAUNCHER)//폭발로 인한 렉돌 { float Explosion_Force = 25.0f; float Explosion_Radius = 3.0f; float Explosion_Up = 1.5f; for (int i = 0; i < Ragdoll_Collider_Name.Length; i++) { Bot_Ragdoll_Rigidbody[Ragdoll_Collider_Name[i]].Rigid_Body.AddExplosionForce(Explosion_Force, Die_Atk_Start_Vec, Explosion_Radius, Explosion_Up, ForceMode.Impulse); } } else//일반 총 렉돌 { for (int i = 0; i < Ragdoll_Collider_Name.Length; i++) { Bot_Ragdoll_Rigidbody[Ragdoll_Collider_Name[i]].Rigid_Body.AddForceAtPosition((Die_Atk_Target_Vec - Die_Atk_Start_Vec).normalized * Force, Die_Atk_Target_Vec); } } }
// Use this for initialization void Start() { m_eGunInitType = GUN_TYPE.E_BASE; m_eGunType = GUN_TYPE.E_BASE; m_cGun.AddComponent <BaseGun>(); }
public void GunInit(GUN_TYPE eGunType) { m_scGun.GunInit(eGunType); }
public void ChangeGun(GUN_TYPE eGunType) { m_scGun.ChangeGun(eGunType); }