コード例 #1
0
ファイル: E_PistolA.cs プロジェクト: Vaskrol/Break-In
    public void Fire(Vector2 aim)
    {
        var     spread          = Random.Range(-spreading / 2f, spreading / 2f);
        var     spreadAngle     = Quaternion.AngleAxis(spread, Vector3.back);
        Vector3 firingDirection = spreadAngle * transform.up * 20;

        if (curCooldown == 0.0f)
        {
            curCooldown = Cooldown;

            RaycastHit2D hit =
                Physics2D.Raycast(transform.position, firingDirection);

            DrawBullitTrail(transform.position, firingDirection);

            if (hit.collider != null)
            {
                var targetPoint = new Vector2(hit.point.x, hit.point.y);

                var hitExplosion = Instantiate(
                    _hitExplosionPrefab,
                    targetPoint,
                    Quaternion.identity)
                                   .AddComponent <ObjectDestroyer>();
                hitExplosion.name = "Hit Explosion";
                DebugDrawer.DrawCross(targetPoint, Color.red);


                var vController = hit.collider.gameObject.GetComponent <VehicleController>();
                if (vController == null)
                {
                    return;
                }

                var vehicle = vController.CurrentVehicle;
                vehicle.ReceiveDamage(Damage, DamageType.Bullit);
            }
        }
    }