void FixedUpdate() { if(m_eState == LAUNCHTUBESTATE.NotReady) { _m_fTimePassed += Time.fixedDeltaTime; if(_m_fTimePassed >= m_fTimeToReady) { m_eState = LAUNCHTUBESTATE.Unloaded; _m_fTimePassed = 0; } } else if(m_eState == LAUNCHTUBESTATE.Loading) { Ship_Small ship = (Ship_Small)m_goShip.GetComponent("Ship_Small"); _m_fTimePassed += Time.fixedDeltaTime; ship.m_eSmallShipState = SMALLSHIPSTATE.Loading; if(_m_fTimePassed >= m_fTimeToLoad) { m_eState = LAUNCHTUBESTATE.Loaded; ship.m_eSmallShipState = SMALLSHIPSTATE.Loaded; m_goShip.rigidbody.position = this.transform.position; m_goShip.rigidbody.rotation = this.transform.rotation; _m_fTimePassed = 0; } } else if(m_eState == LAUNCHTUBESTATE.Launching) { Launching(); } }
public void LaunchShip() { m_eState = LAUNCHTUBESTATE.Launching; Ship_Small ship = (Ship_Small)m_goShip.GetComponent("Ship_Small"); ship.m_eSmallShipState = SMALLSHIPSTATE.Launching; m_goShip.renderer.enabled = true; }
void Launching() { float distance = Vector3.Distance(this.transform.position, m_goShip.rigidbody.position); Ship_Small ship = (Ship_Small)m_goShip.GetComponent("Ship_Small"); if(distance > 5) { ship.m_eSmallShipState = SMALLSHIPSTATE.Flying; m_eState = LAUNCHTUBESTATE.NotReady; m_goShip = null; } else { m_goShip.rigidbody.velocity -= ((transform.forward * (m_fLaunchThrust * ship.m_fMaxThrust)) / m_goShip.rigidbody.mass) * Time.fixedDeltaTime; } }
void Start() { m_eState = LAUNCHTUBESTATE.NotReady; }
public void LoadShip(GameObject pShip) { m_goShip = pShip; m_eState = LAUNCHTUBESTATE.Loading; }