Exemplo n.º 1
0
    private void DeteectAndGotoTarget()
    {
        if (null == m_Target)
        {
            return;
        }

        Vector3 toTarget = m_Target.transform.position - this.transform.position;

        if (toTarget.sqrMagnitude < m_Threashold)
        {
            this.m_State = MissleLanchAndGotoTarget01State.Suicide;
        }
        toTarget.Normalize();
        Vector3 moveVec = toTarget * (m_Speed * Time.deltaTime);

        if (null != m_UnitData)
        {
            m_UnitData.m_Velocity += moveVec;
        }
        else
        {
            this.transform.Translate(moveVec);
        }
    }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        switch (m_State)
        {
        case MissleLanchAndGotoTarget01State.UnActive:
            m_State = MissleLanchAndGotoTarget01State.Lanch;
            break;

        case MissleLanchAndGotoTarget01State.Lanch:
            Lanching();
            if (Time.timeSinceLevelLoad > m_LanchEndTime)
            {
                this.m_State = MissleLanchAndGotoTarget01State.GoToTarget;
            }
            break;

        case MissleLanchAndGotoTarget01State.GoToTarget:
            DeteectAndGotoTarget();
            break;

        case MissleLanchAndGotoTarget01State.Suicide:
            /* 自殺,不能解決難題;求助,才是最好的路。求救請打1995 ( 要救救我 ) */
            GameObject.Destroy(this.gameObject);
            break;
        }
    }
	private void DeteectAndGotoTarget()
	{
		if( null == m_Target )
			return ;
		
		Vector3 toTarget = m_Target.transform.position - this.transform.position ;
		if( toTarget.sqrMagnitude < m_Threashold )
		{
			this.m_State = MissleLanchAndGotoTarget01State.Suicide ;
		}
		toTarget.Normalize() ;
		Vector3 moveVec = toTarget * ( m_Speed * Time.deltaTime ) ;
		if( null != m_UnitData )
		{
			m_UnitData.m_Velocity += moveVec ;
		}
		else
		{
			this.transform.Translate( moveVec ) ;
		}
	}
	// Update is called once per frame
	void Update () 
	{
		switch( m_State )
		{
		case MissleLanchAndGotoTarget01State.UnActive :
			m_State = MissleLanchAndGotoTarget01State.Lanch ;
			break ;
		case MissleLanchAndGotoTarget01State.Lanch :
			Lanching() ;
			if( Time.timeSinceLevelLoad > m_LanchEndTime )
			{
				this.m_State = MissleLanchAndGotoTarget01State.GoToTarget ;
			}
			break ;
		case MissleLanchAndGotoTarget01State.GoToTarget :
			DeteectAndGotoTarget() ;
			break ;			
		case MissleLanchAndGotoTarget01State.Suicide :
			/* 自殺,不能解決難題;求助,才是最好的路。求救請打1995 ( 要救救我 ) */
			GameObject.Destroy( this.gameObject ) ;
			break ;						
		}
	}