Пример #1
0
        public ForwawrdAndUnderRaycaster(ref PostureState posture, ref FigureInfo figure, _Action3Enemy act)
        {
            r = new UnderRaycaster(ref posture, ref figure, act);


            movedist = act.stance.moveSpeed * GM.t.delta;


            moveRadius = figure.moveRadius;


            forward = posture.rot * Vector3.forward;

            forwardOrigin = posture.isGotFoothold ? r.bodypos : r.bodypos - forward;
        }
Пример #2
0
    protected void physStayOnWall()
    {
        var rc = new UnderRaycaster(ref posture, ref figure, this);


        var res = new RaycastHit();

        if (rc.raycastUnder(out res))
        {
            // 接地してた

            posture.rot = Quaternion.FromToRotation(rc.up, res.normal) * posture.rot;

            rb.MovePosition(res.point);
        }
        else
        {
            // 落下へ

            state.setPhysics(physFree);
            shiftToPhysicalMode();
        }
    }