public static EffectMuzzleFlash CreateObject(GameObject g)
    {
        EffectMuzzleFlash d = GetGameObject <EffectMuzzleFlash>(false, "MuzzleFlash", ResourceInformation.Effect.transform);

        //Vector3 v = new Vector3(g.transform.position.x,
        //    g.transform.position.y,
        //    g.transform.position.z);

        d.Parent.transform.rotation = g.transform.rotation;

        d.Parent.transform.position = g.transform.position;

        return(d);
    }
    public void OnCallGunFire(int idir)
    {
        //銃弾エフェクト

        //現在位置の取得
        Vector3 CurrentPoint = new Vector3(Character.CurrentPoint.X * Character.PositionUnit,
                                           PosY,
                                           Character.CurrentPoint.Y * Character.PositionUnit);

        foreach (GunFireActionNumber val in GunFireActionNumbers)
        {
            if (val == GunFireActionNumber.BothGun || val == GunFireActionNumber.LeftGun || val == GunFireActionNumber.RightGun)
            {
                continue;
            }
            if (((int)val & idir) != 0)
            {
                CharacterDirection dir = CharacterDirection.Top;
                //方向の取得
                switch (val)
                {
                case GunFireActionNumber.Top:
                    dir = Character.Direction;
                    break;

                case GunFireActionNumber.TopLeft:
                    dir = CommonFunction.RelativeFrontLeft[Character.Direction];
                    break;

                case GunFireActionNumber.TopRight:
                    dir = CommonFunction.RelativeFrontRight[Character.Direction];
                    break;

                case GunFireActionNumber.Left:
                    dir = CommonFunction.RelativeLeft[Character.Direction];
                    break;

                case GunFireActionNumber.Right:
                    dir = CommonFunction.RelativeRight[Character.Direction];
                    break;

                case GunFireActionNumber.BottomLeft:
                    dir = CommonFunction.ReverseLeftDirectionVector[Character.Direction];
                    break;

                case GunFireActionNumber.BottomRight:
                    dir = CommonFunction.ReverseRightDirectionVector[Character.Direction];
                    break;

                case GunFireActionNumber.Bottom:
                    dir = CommonFunction.ReverseDirection[Character.Direction];
                    break;
                }
                //MapPoint mp = Character.DeathBlowTargetPoint[dir].Add(CommonFunction.CharacterDirectionVector[CommonFunction.ReverseDirection[dir]]);
                MapPoint mp = Character.DeathBlowTargetPoint[dir];
                //目標位置の取得
                Vector3 TargetPoint = new Vector3(mp.X * Character.PositionUnit + ((float)CommonFunction.CharacterDirectionVector[CommonFunction.ReverseDirection[dir]].X * 0.5f),
                                                  PosY,
                                                  mp.Y * Character.PositionUnit + ((float)CommonFunction.CharacterDirectionVector[CommonFunction.ReverseDirection[dir]].Y * 0.5f));

                //銃弾エフェクト
                EffectGunBulletSingle.CreateObject(CurrentPoint, TargetPoint, Character.DeathBlowTargetCharacter[dir], dir).Play();
            }
        }

        //マズルエフェクト
        if (((int)GunFireActionNumber.LeftGun & idir) != 0)
        {
            EffectMuzzleFlash.CreateObject(GunLeftPos).Play();
        }
        else if (((int)GunFireActionNumber.RightGun & idir) != 0)
        {
            EffectMuzzleFlash.CreateObject(GunRightPos).Play();
        }
        else if (((int)GunFireActionNumber.BothGun & idir) != 0)
        {
            EffectMuzzleFlash.CreateObject(GunRightPos).Play();
            EffectMuzzleFlash.CreateObject(GunLeftPos).Play();
        }

        //音
        SoundInformation.Sound.Play(SoundInformation.SoundType.Gun);
    }