public void Fire() { if (!player.IsReload && !player.IsInven && !player.IsStun && !player.IsChestOpen && !player.IsSkill) { if (Input.GetMouseButton(1) && NBullet > 0) { if (Time.time >= fireTime) { GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[0]); NBullet--; fireTime = Time.time + FireRate + Random.Range(0.0f, 0.3f); player.FSatiety -= 0.5f; //배고품 수치를 1씩 감소 StartCoroutine(player.ShakeCam.ShakeCamAct(0.05f, 0.1f, 0.1f)); //카메라 흔들림 player.Stop(); aniCtrl.AniFire(); Muzzle.Play(); BulletSetting(true); } } else if (Input.GetMouseButtonDown(1) && NBullet <= 0) { GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[2]); } } }
private Vector3 muzzlePosition; //position of gun muzzle in world space as determined by muzzle game object private void Awake() { if (!playerCamera) { playerCamera = Camera.main; } bulletPool = GetComponent <BulletPool>() ?? gameObject.AddComponent <BulletPool>(); muzzle = GetComponentInChildren <Muzzle>(); }
void Start() { shootTouch = FindObjectOfType <ShootTouch>(); toggleSwitch = FindObjectOfType <ToggleSwitch>(); muzzle = GetComponentInChildren <Muzzle>(); EquipWeapon(playerData.GetWeaponByName()); recoil = GetComponent <PlayerPhysics>(); isToggling = false; state = State.AutoFire; }
// Start is called before the first frame update void Start() { trigger = Trigger.Instance; magasize = Magasine.Instance; muzzle = Muzzle.Instance; magasize.gun = this; broken = false; breakTimer = Timer.CreateTimer(gunTime); }
private float GetRootAngle(Muzzle muzzle, float angleToTarget) { if (muzzle.Space == Space.Self) { return(angleToTarget + muzzle.Angle); } else { return(muzzle.Angle); } }
private void LaunchBullet(Muzzle muzzle, GameObject origin, Collider2D ignore = null) { Vector2 worldPos = transform.TransformPoint(muzzle.pos); Vector2 direction = Rotate(transform.up, muzzle.angle); GameObject bullet = Instantiate(def.bulletPrefab, worldPos, Quaternion.FromToRotation(transform.up, direction) * transform.rotation); DamageOnCollision damageOnCollision = bullet.GetComponent <DamageOnCollision>(); damageOnCollision.origin = origin; damageOnCollision.IgnoreCollisionWithOrigin = ignore != null; }
/// <summary> /// Enemy Attack /// </summary> public IEnumerator EnemyAttack(EnemyCtrl enemy, float attackDelay = 1.5f) { enemy.IsAttack = true; //공격 상태 enemy.EnemyStop(); //공격 범위에 들어오면 정지한다 enemy.Nav.transform.LookAt(enemy.TargetTr); //타겟을 바라본다 enemy.AniCtrl.AniAttack(); //공격 애니메이션 yield return(new WaitForSeconds(0.5f)); Muzzle.Play(); //공격 이펙트(총구 화염 또는 공격 효과) BulletSetting(false); //공격 이펙트(데미지 적용) float ran = Random.Range(0.0f, attackDelay); yield return(new WaitForSeconds(ran)); enemy.IsAttack = false; //공격 상태 해제 }
void CreateBarrel(GameObject p_NewMuzzle) { if (m_muzzle != null) { m_muzzle.DestroyMuzzle(); } m_muzzle = Instantiate(p_NewMuzzle).GetComponent <Muzzle>(); m_muzzle.transform.localScale = transform.localScale; m_muzzle.transform.position = new Vector2(transform.position.x, transform.position.y + m_spriterenderer.bounds.size.y / 2 + m_muzzle.GetComponent <SpriteRenderer>().bounds.size.y / 2); m_muzzle.name = p_NewMuzzle.name; m_muzzle.ShowAmmo(); m_muzzle.transform.SetParent(transform); m_muzzle.transform.localScale = new Vector2(1, 1); }
IEnumerator AttackDelay() { player.IsAttack = true; int ran = Random.Range(0, 3); player.AniCtrl.AniAttackID(ran); player.AniCtrl.AniAttack(); GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[0]); player.FSatiety -= 1f; Muzzle.Play(); //공격 이펙트 player.Stop(); yield return(new WaitForSeconds(0.5f)); BulletSetting(true); //속성 이펙트 yield return(new WaitForSeconds(0.5f)); player.IsAttack = false; }
// Use this for initialization void Start() { muzzleObj = GetComponentInChildren<Muzzle> (); }
public override void SetPart(WeaponPart part) { base.SetPart(part); data = part as Muzzle; }
private float ApplyInterval(Muzzle muzzle, float rawAngle) { float randomValue = Random.Range(muzzle.IntervalStart, muzzle.IntervalEnd); return(rawAngle + randomValue); }
private float GetAngle(Muzzle muzzle, float angleToTarget) { float rootAngle = GetRootAngle(muzzle, angleToTarget); return(ApplyInterval(muzzle, rootAngle)); }
// Use this for initialization void Start() { muzzleObj = GetComponentInChildren <Muzzle> (); }