//获取所有WrapContent所需对象 void Init() { mTrans = gameObject.transform; mPanel = NGUITools.FindInParents <UIPanel>(mTrans); mScrollView = mPanel.gameObject.GetComponent <H3DScrollView>(); mPanel.onClipMove = OnPanelMove; mStartItemIndx = 0; mMoveType = mScrollView.movementType; mTotalItemCount = 0; mTotalItemCount = 0; mColumnLimit = mScrollView.columnLimit; //mScrollPos = Vector2.zero; mItemWidth = mScrollView.itemWidth; mItemHeight = mScrollView.itemHeight; //mPanelStartPos = mPanel.transform.localPosition; //为子项目绑定H3DDragScrollView脚本 mChildren.Clear(); Transform[] widgets = new Transform[gameObject.transform.childCount]; for (int i = 0; i < gameObject.transform.childCount; ++i) { widgets[i] = transform.GetChild(i); } //UIWidget[] widgets = gameObject.GetComponentsInChildren<UIWidget>(); foreach (Transform w in widgets) { if (w.parent != mTrans) { continue; } if (Application.isPlaying) { if (w.gameObject.GetComponent <H3DDragScrollView>() == null) { w.gameObject.AddComponent <H3DDragScrollView>(); } } mChildren.Add(w); } mSlots = new int[mChildren.size]; for (int i = 0; i < mSlots.Length; i++) { mSlots[i] = -1; } mSlotFlags = new int[mChildren.size]; for (int i = 0; i < mSlotFlags.Length; i++) { mSlotFlags[i] = 0; } }
void Awake() { mTrans = transform; var p = mTrans.parent; while (p != null) { mScrollView = p.gameObject.GetComponent <H3DScrollView>(); if (mScrollView != null) { break; } p = p.parent; } }
public override void OnInspectorGUI() { serializedObject.Update(); SerializedProperty movementTypeSp = serializedObject.FindProperty("mMovementType"); H3DScrollView.H3DScrollViewMovementType moveType = (H3DScrollView.H3DScrollViewMovementType)movementTypeSp.enumValueIndex; H3DInspectorTool.DrawProperty("移动方式", serializedObject, "mMovementType", true); H3DInspectorTool.DrawProperty("拖拽效果", serializedObject, "mDragEffect", true); H3DInspectorTool.DrawProperty("列数限制", serializedObject, "mColumnLimit", true); SerializedProperty columnLimitSp = serializedObject.FindProperty("mColumnLimit"); columnLimitSp.intValue = Mathf.Max(1, columnLimitSp.intValue); SerializedProperty dragEffSp = serializedObject.FindProperty("mDragEffect"); H3DScrollView.H3DScrollViewDragEffect dragEff = (H3DScrollView.H3DScrollViewDragEffect)dragEffSp.enumValueIndex; if ( dragEff == H3DScrollView.H3DScrollViewDragEffect.Momentum || dragEff == H3DScrollView.H3DScrollViewDragEffect.MomentumAndSpring ) { H3DInspectorTool.DrawProperty("动量", serializedObject, "mMomentumAmount", true); } if ( moveType == H3DScrollView.H3DScrollViewMovementType.Horizontal || moveType == H3DScrollView.H3DScrollViewMovementType.Unrestricted || columnLimitSp.intValue > 1 ) { H3DInspectorTool.DrawProperty("条目宽度(像素)", serializedObject, "mItemWidth", true); SerializedProperty itemWidthSp = serializedObject.FindProperty("mItemWidth"); itemWidthSp.intValue = Mathf.Max(0, itemWidthSp.intValue); } if ( moveType == H3DScrollView.H3DScrollViewMovementType.Vertical || moveType == H3DScrollView.H3DScrollViewMovementType.Unrestricted || columnLimitSp.intValue > 1 ) { H3DInspectorTool.DrawProperty("条目高度(像素)", serializedObject, "mItemHeight", true); SerializedProperty itemHeightSp = serializedObject.FindProperty("mItemHeight"); itemHeightSp.intValue = Mathf.Max(0, itemHeightSp.intValue); } if ( moveType == H3DScrollView.H3DScrollViewMovementType.Horizontal || moveType == H3DScrollView.H3DScrollViewMovementType.Unrestricted ) { H3DInspectorTool.DrawProperty("水平滚动条", serializedObject, "mHorizonScrollBar", true); } if ( moveType == H3DScrollView.H3DScrollViewMovementType.Vertical || moveType == H3DScrollView.H3DScrollViewMovementType.Unrestricted ) { H3DInspectorTool.DrawProperty("垂直滚动条", serializedObject, "mVerticalScrollBar", true); } bool dirty = serializedObject.ApplyModifiedProperties(); if (dirty) { H3DScrollView scrollView = target as H3DScrollView; if (scrollView != null) { scrollView.RecalcLayout(); } } }