コード例 #1
0
 // Update is called once per frame
 void Update()
 {
     if (SRUtil.Detect(manager.sight, 1, manager.playerCC))
     {
         manager.SetState(SlimeState.CHASE);
     }
 }
コード例 #2
0
ファイル: PlayerRUN.cs プロジェクト: changhyeon743/FSM
    // Update is called once per frame
    void FixedUpdate()
    {
        SRUtil.SRMove(manager.cc, manager.transform, manager.marker.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed);

        Vector3 diff = manager.marker.position - transform.position;

        diff.y = 0;
        if (diff.sqrMagnitude < 0.1f * 0.1f)
        {
            manager.SetState(PlayerState.IDLE);
            return;
        }
    }
コード例 #3
0
    // Update is called once per frame
    void Update()
    {
        SRUtil.SRMove(manager.cc, manager.transform, manager.target.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed);



        Vector3 diff = manager.target.position - transform.position;

        diff.y = 0;
        if (diff.sqrMagnitude < manager.stat.attackRange * manager.stat.attackRange)
        {
            manager.SetState(PlayerState.ATTACK);
            return;
        }
    }
コード例 #4
0
ファイル: SlimePATROL.cs プロジェクト: changhyeon743/FSM
    // 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;
        }
    }
コード例 #5
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;
            }
        }
    }
コード例 #6
0
ファイル: UnitMOVE.cs プロジェクト: changhyeon743/AutoChess
 // Update is called once per frame
 void Update()
 {
     if (manager.target != null)
     {
         if (manager.target.activeSelf == false)
         {
             manager.SetState(UnitState.READY);
             return;
         }
         if (Vector3.Distance(this.transform.position, manager.target.transform.position) <= manager.stat.attackRange)
         {
             manager.SetState(UnitState.ATTACK);
         }
         else
         {
             SRUtil.SRMove(manager.cc, this.transform, manager.target.transform.position, manager.stat.moveSpeed, manager.stat.rotateSpeed, manager.stat.fallSpeed);
         }
     }
     else
     {
         manager.SetState(UnitState.READY);
     }
 }