Beispiel #1
0
    public void UpdateEntityHighlight(MObject.MInteractMode interactMode)
    {
        MEntityPair e = GetAvailEntity(rightControllerPosition, interactMode);

        if (activeEntity.entity != e.entity)
        {
            UnhighlightEntity(activeEntity.entity);
            HighlightEntity(e.entity);
        }
        activeEntity = e;
    }
Beispiel #2
0
    private MEntityPair GetAvailEntity(Vector3 pos, MObject.MInteractMode mode)
    {
        MEntity entity    = null;
        MObject activeObj = null;
        MEntity temp;
        float   dis = float.MaxValue;
        float   f;

        foreach (MObject obj in objects)
        {
            if (obj.HitObject(pos))
            {
                if ((f = obj.Response(out temp, pos, mode)) < dis)
                {
                    activeObj = obj;
                    dis       = f;
                    entity    = temp;
                }
            }
        }
        return(new MEntityPair(entity, activeObj));
    }
Beispiel #3
0
    public void UpdateEntityHighlight(MObject.MInteractMode interactMode, MObject obj)
    {
        MEntity entity = null;

        if (obj.HitObject(rightControllerPosition))
        {
            obj.Response(out entity, rightControllerPosition, interactMode);
        }
        if (activeEntity.entity != entity)
        {
            UnhighlightEntity(activeEntity.entity);
            HighlightEntity(entity);
        }
        if (entity == null)
        {
            activeEntity = new MEntityPair(null, null);
        }
        else
        {
            activeEntity = new MEntityPair(entity, obj);
        }
    }