Пример #1
0
    void Start()
    {
        m_playerScript = m_player.GetComponent <PlayerScript>();
        m_frontScript  = m_frontSprite.GetComponent <SpriteScript>();
        m_backScript   = m_backSprite.GetComponent <SpriteScript>();
        m_rightScript  = m_rightSprite.GetComponent <SpriteScript>();
        m_leftScript   = m_leftSprite.GetComponent <SpriteScript>();

        m_lastState = m_playerScript.m_state;

        m_frontScript.PlayNext(SpriteScript.Sprite.FrontIdle, false);
        m_backScript.PlayNext(SpriteScript.Sprite.SideBackIdle, false);
        m_rightScript.PlayNext(SpriteScript.Sprite.SideFrontIdle, false);
        m_leftScript.PlayNext(SpriteScript.Sprite.SideBackIdle, false);
    }
Пример #2
0
    void moveFromList()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Ray        ray = cam.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            Physics.Raycast(ray, out hit);

            Vector3 Temppoint = new Vector3(hit.point.x, agent.transform.position.y, hit.point.z);

            //İf Click is out of walkable surface bounds do not add to list
            //Add position check for size bounds on walkable obj because of Nav mesh's Bake Area

            if (hit.collider != null && hit.collider.tag == "Enemy")
            {
                Vector3 closestPoint = hit.collider.ClosestPoint(GameObject.Find("Agent").GetComponent <Transform>().position);
                closestPoint.y = GameObject.Find("Agent").GetComponent <Transform>().position.y;
                Temppoint      = closestPoint;
                Destroy(hit.collider.gameObject);
            }

            if (!(Temppoint.x == 0 || Temppoint.z == 0))
            {
                vektor3list.Add(Temppoint);
            }
        }
        if (Input.GetKeyDown(KeyCode.E))
        {
            //Error(Index was out of range) if list is empty
            if (vektor3list.Count > 0)
            {
                AgentState = PlayerScript.State.Play;
            }
        }

        switch (AgentState)
        {
        case PlayerScript.State.Check:

            if (vektor3list.Count == 0)
            {       //When all items deleted From the Vector List Go back to start
                AgentState = PlayerScript.State.Stop;
            }

            else
            {
                AgentState = PlayerScript.State.Play;
            }
            break;

        case PlayerScript.State.Dec:
            //Remove The Vector that char. moved
            AgentState = PlayerScript.State.Check;
            vektor3list.RemoveAt(0);
            break;

        case PlayerScript.State.Play:
            //if not reached set dest.
            if (agent.transform.position != vektor3list[0])
            {
                agent.destination = vektor3list[0];
            }
            // if reached check and delete
            if (agent.transform.position == vektor3list[0])
            {
                AgentState = PlayerScript.State.Dec;
            }

            break;
        }
    }
Пример #3
0
 void Start()
 {
     AgentState = PlayerScript.State.Stop;
     SwichFlag  = true;//Move Mode
 }
Пример #4
0
    void UpdateState()
    {
        switch (m_playerScript.m_state)
        {
        case PlayerScript.State.Idle:
        {
            m_frontScript.PlayNext(SpriteScript.Sprite.FrontIdle, false);
            m_backScript.PlayNext(SpriteScript.Sprite.SideBackIdle, false);

            if (m_lastState == PlayerScript.State.Right)
            {
                m_rightScript.PlayNext(SpriteScript.Sprite.SideFrontIdle, false);
                m_leftScript.PlayNext(SpriteScript.Sprite.SideBackIdle, false);
            }
            if (m_lastState == PlayerScript.State.Left)
            {
                m_rightScript.PlayNext(SpriteScript.Sprite.SideBackIdle, false);
                m_leftScript.PlayNext(SpriteScript.Sprite.SideFrontIdle, false);
            }
            break;
        }

        case PlayerScript.State.Right:
        {
            if (m_playerScript.m_speedBoost != 0f)
            {
                m_frontScript.PlayNext(SpriteScript.Sprite.FrontRunEscape);
                m_backScript.PlayNext(SpriteScript.Sprite.FrontRunEscape);
            }
            else
            {
                m_frontScript.PlayNext(SpriteScript.Sprite.FrontRun);
                m_backScript.PlayNext(SpriteScript.Sprite.FrontRun);
            }

            m_rightScript.PlayNext(SpriteScript.Sprite.SideFrontRun);
            m_leftScript.PlayNext(SpriteScript.Sprite.SideBackRun);

            m_frontScript.ReverseSprite(false);
            m_backScript.ReverseSprite(true);
            m_rightScript.ReverseSprite(false);
            m_leftScript.ReverseSprite(false);

            m_lastState = PlayerScript.State.Right;
            break;
        }

        case PlayerScript.State.Left:
        {
            if (m_playerScript.m_speedBoost != 0f)
            {
                m_frontScript.PlayNext(SpriteScript.Sprite.FrontRunEscape);
                m_backScript.PlayNext(SpriteScript.Sprite.FrontRunEscape);
            }
            else
            {
                m_frontScript.PlayNext(SpriteScript.Sprite.FrontRun);
                m_backScript.PlayNext(SpriteScript.Sprite.FrontRun);
            }

            m_rightScript.PlayNext(SpriteScript.Sprite.SideBackRun);
            m_leftScript.PlayNext(SpriteScript.Sprite.SideFrontRun);

            m_frontScript.ReverseSprite(true);
            m_backScript.ReverseSprite(false);
            m_rightScript.ReverseSprite(true);
            m_leftScript.ReverseSprite(true);

            m_lastState = PlayerScript.State.Left;
            break;
        }

        case PlayerScript.State.Jump:
        {
            m_frontScript.PlayNext(SpriteScript.Sprite.FrontDash, true);
            m_backScript.PlayNext(SpriteScript.Sprite.BackDash, true);
            m_rightScript.PlayNext(SpriteScript.Sprite.SideDash, true);
            m_leftScript.PlayNext(SpriteScript.Sprite.SideDash, true);

            m_frontScript.ReverseSprite(false);
            m_backScript.ReverseSprite(false);
            m_rightScript.ReverseSprite(true);
            m_leftScript.ReverseSprite(false);
            break;
        }

        case PlayerScript.State.Stun:
        {
            m_frontScript.PlayNext(SpriteScript.Sprite.FrontFall, false);
            m_backScript.PlayNext(SpriteScript.Sprite.SideBackFall, false);
            if (m_lastState == PlayerScript.State.Right)
            {
                m_rightScript.PlayNext(SpriteScript.Sprite.SideBackFall, false);
                m_leftScript.PlayNext(SpriteScript.Sprite.FrontFall, false);
            }
            else
            {
                m_rightScript.PlayNext(SpriteScript.Sprite.FrontFall, false);
                m_leftScript.PlayNext(SpriteScript.Sprite.SideBackFall, false);
            }
            break;
        }
        }
    }