Пример #1
0
 // Update is called once per frame
 void Update()
 {
     if (SRUtil.Detect(manager.sight, 1, manager.playerCC))
     {
         manager.SetState(SlimeState.CHASE);
     }
 }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        if (SRUtil.Detect(manager.sight, 1, manager.playerCC))
        {
            manager.SetState(SlimeState.CHASE);
        }

        SRUtil.SRMove(manager.cc, manager.transform, goal, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed);

        Vector3 diff = goal - transform.position;

        diff.y = 0;
        if (diff.sqrMagnitude < 0.1f * 0.1f)
        {
            manager.SetState(SlimeState.IDLE);
            return;
        }
    }
Пример #3
0
    // Update is called once per frame
    void Update()
    {
        if (manager.playerCC != null)
        {
            if (!SRUtil.Detect(manager.sight, 1, manager.playerCC))
            {
                manager.SetState(SlimeState.IDLE);
            }

            SRUtil.SRMove(manager.cc, manager.transform, manager.playerCC.transform.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed);

            Vector3 diff = manager.playerCC.transform.position - transform.position;
            diff.y = 0;
            if (diff.sqrMagnitude < manager.stat.attackRange * manager.stat.attackRange)
            {
                manager.SetState(SlimeState.ATTACK);
                return;
            }
        }
    }