示例#1
0
文件: CatMove.cs 项目: C6H5-NO2/ld46
    private IEnumerator SmoothMove(List <Vector2Int> path)
    {
        const float moveTime = .1f, inverseMoveTime = 1 / moveTime;

        BusyMoving = false;

        foreach (var grid in path)
        {
            if (!BusyMoving)
            {
                BusyMoving = true;
                Map[(int)transform.position.x, (int)transform.position.z] &= ~MapObj.Cat;
                continue;
            }

            var target = new Vector3(grid.x, 0, grid.y);
            while ((target - transform.position).sqrMagnitude > float.Epsilon)
            {
                transform.position = Vector3.MoveTowards(transform.position, target, inverseMoveTime * Time.deltaTime);
                //transform.position = Vector3.Lerp(transform.position, target, 5 * Time.deltaTime);
                yield return(null);
            }
            transform.position = target;
        }

        catHunger.DoMove();
        Map[(int)transform.position.x, (int)transform.position.z] |= MapObj.Cat;
        BusyMoving = false;
    }