コード例 #1
0
ファイル: FlightDeck.cs プロジェクト: Crazygraphical/Spacers
    public void LoadLift(GameObject pShip)
    {
        m_goShip = pShip;

        m_goShip.rigidbody.position = _m_vStartPos;
        m_goShip.rigidbody.rotation = this.transform.rotation;
        m_eState = DECKLIFTSTATE.Loading;
    }
コード例 #2
0
ファイル: FlightDeck.cs プロジェクト: Crazygraphical/Spacers
    public void LaunchShip()
    {
        Ship_Small ship = (Ship_Small)m_goShip.GetComponent("Ship_Small");
        ship.m_eSmallShipState = SMALLSHIPSTATE.Launching;

        m_goShip.renderer.enabled = true;

        m_eState = DECKLIFTSTATE.Raising;
    }
コード例 #3
0
ファイル: FlightDeck.cs プロジェクト: Crazygraphical/Spacers
    // Update is called once per frame
    void FixedUpdate()
    {
        if(m_eState == DECKLIFTSTATE.NotReady)
        {
            _m_fTimePassed += Time.fixedDeltaTime;
            if(_m_fTimePassed >= m_fTimeToReady)
            {
                m_eState = DECKLIFTSTATE.Unloaded;
                _m_fTimePassed = 0;
            }
        }
        else if(m_eState == DECKLIFTSTATE.Loading)
        {
            Ship_Small ship = (Ship_Small)m_goShip.GetComponent("Ship_Small");
            ship.m_eSmallShipState = SMALLSHIPSTATE.Loading;
            _m_fTimePassed += Time.fixedDeltaTime;
            if(_m_fTimePassed >= m_fTimeToLoad)
            {
                m_eState = DECKLIFTSTATE.Loaded;
                ship.m_eSmallShipState = SMALLSHIPSTATE.Loaded;
                _m_fTimePassed = 0;
            }
        }
        else if(m_eState == DECKLIFTSTATE.Raising)
        {
            _m_fTimePassed += Time.fixedDeltaTime;
            m_goShip.rigidbody.position = Vector3.Lerp(_m_vStartPos, this.transform.position,
                _m_fTimePassed/2);

            if(_m_fTimePassed >= m_fTimeToRaiseLower)
            {
                m_eState = DECKLIFTSTATE.Raised;
                _m_fTimePassed = 0;
            }
        }
        else if(m_eState == DECKLIFTSTATE.Raised)
        {
            Launching();
        }
        else if(m_eState == DECKLIFTSTATE.Lowering)
        {
            _m_fTimePassed += Time.fixedDeltaTime;
            if(_m_fTimePassed >= m_fTimeToRaiseLower)
            {
                m_eState = DECKLIFTSTATE.NotReady;
                _m_fTimePassed = 0;
            }
        }
    }
コード例 #4
0
ファイル: FlightDeck.cs プロジェクト: Crazygraphical/Spacers
    public 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 = DECKLIFTSTATE.Lowering;
            m_goShip = null;
        }
        else
        {
            m_goShip.rigidbody.velocity -= ((transform.forward * (0.1f * ship.m_fMaxThrust)) / m_goShip.rigidbody.mass) *
                Time.fixedDeltaTime;
            m_goShip.rigidbody.velocity += ((transform.up * (0.1f * ship.m_fMaxThrust)) / m_goShip.rigidbody.mass) *
                Time.fixedDeltaTime;
        }
    }
コード例 #5
0
ファイル: FlightDeck.cs プロジェクト: Crazygraphical/Spacers
    // Use this for initialization
    void Start()
    {
        m_goLandingStrip = (GameObject)GameObject.Instantiate(m_goLandingStripPrefab);
        m_goLandingStrip.transform.parent = this.transform;
        m_goLandingStrip.transform.localPosition = new Vector3(0, 0, 12);
        m_eState = DECKLIFTSTATE.NotReady;

        float yAdjust = 0;
        if(this.transform.localPosition.y > 0)
        {
            yAdjust = -1.0f;
        }
        else
        {
            yAdjust = 1.0f;
        }

        _m_vStartPos = this.transform.position + new Vector3(0, yAdjust, 0);
    }