当一个Scrollview套在另一个Scrollview中时,(方向不同)则外层的会被屏蔽,这里可以添加上这样一个脚本来解决,
思路为:子框监听滑动事件,开始滑动时判断手势的方向,根据方向来启用对应的滑动框。
参考文章:https://www.cnblogs.com/suoluo/p/5643885.html
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class NestedScrollRect : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler {
    public ScrollRect parentScrollRect; //父框
    ScrollRect scrollRect; //子框
    const bool isUpAndDown = true; //子框的滑动方向
    void Awake () {
        scrollRect = GetComponent<ScrollRect> ();
        if (parentScrollRect == null) {
            parentScrollRect = scrollRect.GetComponentsInParent<ScrollRect> () [1]; //查找父节点的Scrollview
        }
    }
    //开始拖动
    public void OnBeginDrag (PointerEventData eventData) {
        parentScrollRect.OnBeginDrag (eventData);
        float angle = Vector2.Angle (eventData.delta, Vector2.up); //拖动方向和up方向的夹角
        //根据夹角判断启用哪一个Scrollview
        if (angle > 45 && angle < 135) {
            scrollRect.enabled = !isUpAndDown;
            parentScrollRect.enabled = isUpAndDown;
        } else {
            scrollRect.enabled = isUpAndDown;
            parentScrollRect.enabled = !isUpAndDown;
        }
    }
    //拖动中
    public void OnDrag (PointerEventData eventData) {
        parentScrollRect.OnDrag (eventData);
    }
    //结束拖动,需要将2个滑动框都启用
    public void OnEndDrag (PointerEventData eventData) {
        parentScrollRect.OnEndDrag (eventData);
        scrollRect.enabled = true;
        parentScrollRect.enabled = true;
    }
}