public override void Init() { //初始化属性 m_props = new GameGunProps(); m_props.m_bulletLauncherData = BulletLauncherDataBase.CreateBulletLauncherData(EBulletLauncherType.SingleBullet); m_bulletLauncher = BulletLauncherBase.CreateBulletLauncherBase(m_props.m_bulletLauncherData, gameObject, m_tempBullet); m_gunNode = ObjectCommon.GetChild(gameObject, "gun_sprite"); m_recordSpritePosition = m_gunNode.transform.localPosition; m_bulletNode = ObjectCommon.GetChild(gameObject, "bullet_node"); }
public SingleBulletLauncher(BulletLauncherDataBase data, GameObject gameObject, BulletBase tempBullet) : base(EBulletLauncherType.SingleBullet) { m_data = data as SingleBulletLauncherData; m_bullets = new List <SingleBullet>(); m_cacheBullets = new List <SingleBullet>(); m_templateBullet = tempBullet as SingleBullet; m_templateBullet.gameObject.SetActive(false); m_bulletNode = ObjectCommon.GetChildComponent <Transform>(gameObject, "bullet_node"); if (m_data == null) { Debug.LogError("SingleBulletLauncherData parse error!!"); } }
public static BulletLauncherDataBase CreateBulletLauncherData(EBulletLauncherType type) { BulletLauncherDataBase data = null; switch (type) { case EBulletLauncherType.SingleBullet: data = new SingleBulletLauncherData(); break; case EBulletLauncherType.Laser: break; } return(data); }
public static BulletLauncherBase CreateBulletLauncherBase(BulletLauncherDataBase data, GameObject gameObject, BulletBase tempBullet) { BulletLauncherBase launcher = null; switch (data.m_launcherType) { case EBulletLauncherType.SingleBullet: launcher = new SingleBulletLauncher(data, gameObject, tempBullet); break; case EBulletLauncherType.Laser: break; } if (launcher == null) { Debug.LogError("Launcher is null : " + data.m_launcherType); } return(launcher); }
public override void BulletAwake(Transform transform, Vector3 direction, BulletLauncherDataBase data) { m_launcherData = data as SingleBulletLauncherData; if (m_launcherData == null) { Debug.LogError("SingleBulletLauncher is null !!!"); return; } m_direction = direction; this.transform.position = transform.position; this.transform.rotation = transform.rotation; m_deadTime = Time.time + m_launcherData.m_lifeTime; gameObject.SetActive(true); m_animator.Play(m_launcherData.m_fireAnimName); m_isAwake = true; if (m_waitForSeconds == null) { m_waitForSeconds = new WaitForSeconds(m_launcherData.m_fadeBulletTime); } }
public abstract void BulletAwake(Transform transform, Vector3 direction, BulletLauncherDataBase data);