Beispiel #1
0
 /// <summary>
 /// 检测是否拖动子节点
 /// </summary>
 private void DragOther()
 {
     if (Input.GetMouseButtonDown(0))
     {
         //Debug.Log(GlobeData._RightRaycaster._Result.gameObject);
         OperationBaseItem zom = isCheckChild();
         if (zom != null && zom == this)
         {
             isChild = true;
             CheckAction();
             GlobeData._DragObj = transform;
             //三维物体坐标转屏幕坐标
             Vector3 screenSpace   = GlobeData.GetCurrentEventCamera().WorldToScreenPoint(GlobeData._DragObj.position);
             Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
             //物体的位置,屏幕坐标转换为世界坐标
             Vector3 objectPosition = GlobeData.GetCurrentEventCamera().ScreenToWorldPoint(mousePosition);
             lastpos = objectPosition;
         }
     }
     if (Input.GetMouseButton(0) && GlobeData._DragObj != null && GlobeData._RightRaycaster._Result.gameObject != null)
     {
         if (isChild)
         {
             OnMouseDrag();
         }
     }
     if (Input.GetMouseButtonUp(0))
     {
         GlobeData._DragObj = null;
         isChild            = false;
     }
 }
Beispiel #2
0
    private void OnMouseDrag()
    {
        //Debug.Log("OnMouseDrag:"+Time.time );
        if (!enabled)
        {
            return;
        }
        if (PlateformData.GetCurrentPlatform() == PlatformType.PC && _enableMove)
        {
            //三维物体坐标转屏幕坐标
            Vector3 screenSpace   = GlobeData.GetCurrentEventCamera().WorldToScreenPoint(transform.position);
            Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
            //物体的位置,屏幕坐标转换为世界坐标
            Vector3 objectPosition = GlobeData.GetCurrentEventCamera().ScreenToWorldPoint(mousePosition);
            Vector3 offset         = objectPosition - lastpos;
            //Vector3 pos = GlobeData._DragObj.position + offset;
            // GlobeData._DragObj.position = Vector3.Lerp(GlobeData._DragObj.position, pos, speed * Time.deltaTime * 10);

            // transform.position += offset;
            if (action == 1 && _Tran != null)
            {
                Vector3 pos = _Tran.position + offset;
                _Tran.position = Vector3.Lerp(_Tran.position, pos, _speed * Time.deltaTime * 10);
            }
            else
            {
                Vector3 pos = transform.position + offset;
                transform.position = Vector3.Lerp(transform.position, pos, _speed * Time.deltaTime * 10);
            }
            lastpos = objectPosition;
        }
    }
Beispiel #3
0
    private void RotationAxis(Transform t)
    {
        //计算方向向量
        Vector3 nowPos = GlobeData.GetCurrentEventCamera().WorldToScreenPoint(GlobeData._RightRaycaster.BreakPoints[0]);
        Vector3 offset = lastPenPos - nowPos;

        CheckAction();
        if (action == 1 && _Tran != null)
        {
            if (_enableX)
            {
                _Tran.Rotate(Vector3.right * offset.y * Time.deltaTime * _RotationSpeed, Space.Self);
            }
            if (_enableY)
            {
                _Tran.Rotate(Vector3.up * offset.x * Time.deltaTime * _RotationSpeed, Space.Self);
            }
        }
        else
        {
            if (_enableX)
            {
                transform.Rotate(Vector3.right * offset.y * Time.deltaTime * _RotationSpeed, Space.Self);
            }
            if (_enableY)
            {
                transform.Rotate(Vector3.up * offset.x * Time.deltaTime * _RotationSpeed, Space.Self);
            }
        }
        lastPenPos = nowPos;
    }
        private void BindViewCombo()
        {
            for (int i = 0; i < this.gridView1.Columns.Count; i++)
            {
                this.gridView1.Columns[i].OptionsColumn.AllowEdit = false;

                string field_name = this.gridView1.Columns[i].FieldName.ToLower();

                #region 设定列标签
                TableColumnDesc desc = this.dynamicObject.ColumnList.Find(obj => obj.Column_name.ToLower() == field_name);

                this.gridView1.Columns[i].Caption = GlobeData.GetTableColumnDisplayName(desc.Id);
                #endregion

                #region BindCombo
                if (this.gridView1.Columns[i].FieldName == "Id")
                {
                    this.gridView1.Columns[i].VisibleIndex = 0;
                }
                else
                {
                    TableColumnReference columnReference = this.dynamicObject.ColumnReferenceList.Find(obj => obj.Id == desc.Id);

                    if (columnReference != null)
                    {
                        if (columnReference.Reference_id != null)
                        {
                            DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit repEditor = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
                            repEditor.AutoHeight = false;
                            repEditor.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
                                new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)
                            });
                            repEditor.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] {
                                new DevExpress.XtraEditors.Controls.LookUpColumnInfo(GlobeData.GetColumnName(columnReference.Reference_value_column_id), "ID"),
                                new DevExpress.XtraEditors.Controls.LookUpColumnInfo(GlobeData.GetColumnName(columnReference.Reference_text_column_id), "Name")
                            });
                            repEditor.DisplayMember = GlobeData.GetColumnName(columnReference.Reference_text_column_id);
                            repEditor.Name          = "repEditor" + field_name;
                            repEditor.ValueMember   = GlobeData.GetColumnName(columnReference.Reference_value_column_id);
                            repEditor.DataSource    = new DynamicObjectHelper(
                                GlobeData.classDescList.Find(obj => obj.Table_id == columnReference.Reference_id)).DataList;
                            this.gridView1.Columns[i].ColumnEdit = repEditor;
                        }
                    }
                }

                #endregion

                TableColumnRegular regular = this.dynamicObject.ColumnRegularList.Find(obj => obj.Id == desc.Id);

                if (regular != null && regular.Max_value != regular.Min_value)
                {
                    BindCondtion(this.gridView1.Columns[i], regular.Min_value, regular.Max_value);
                }
            }
        }
Beispiel #5
0
    /// <summary>
    /// 中键按下后设置拖拽初始化数据
    /// </summary>
    /// <param name="hitObject"></param>
    /// <param name="hitDistance"></param>
    /// <param name="inputPosition"></param>
    /// <param name="inputRotation"></param>
    private void BeginGrab(GameObject hitObject, float hitDistance, Vector3 inputPosition, Quaternion inputRotation)
    {
        Vector3 inputEndPosition = inputPosition + (inputRotation * (Vector3.forward * hitDistance));

        _initialGrabOffset   = Quaternion.Inverse(hitObject.transform.rotation) * (hitObject.transform.position - inputEndPosition);
        _initialGrabRotation = Quaternion.Inverse(inputRotation) * hitObject.transform.rotation;
        _initialGrabDistance = hitDistance;
        GlobeData._DragObj   = transform;
        //设置单轴旋转基准点
        // roaPenPos =GlobeData._ZspaceCamera.WorldToScreenPoint(inputPosition);
        // lastPenPos = roaPenPos;
        lastPenPos = GlobeData.GetCurrentEventCamera().WorldToScreenPoint(inputPosition);
        // Debug.Log("press 屏幕坐标点:"+ roaPenPos);
        if (action == 1 && _Tran != null)//分身缩放
        {
            GlobeData._DragObj   = _Tran;
            _initialGrabOffset   = Quaternion.Inverse(_Tran.rotation) * (_Tran.position - inputEndPosition);
            _initialGrabRotation = Quaternion.Inverse(inputRotation) * _Tran.rotation;
        }
    }
Beispiel #6
0
 private void OnMouseDown()
 {
     if (PlateformData.GetCurrentPlatform() == PlatformType.PC && _enableMove)
     {
         CheckAction();
         if (action == 1)
         {
             GlobeData._DragObj = _Tran;
         }
         else
         {
             GlobeData._DragObj = transform;
         }
         //三维物体坐标转屏幕坐标
         Vector3 screenSpace   = GlobeData.GetCurrentEventCamera().WorldToScreenPoint(transform.position);
         Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
         //物体的位置,屏幕坐标转换为世界坐标
         Vector3 objectPosition = GlobeData.GetCurrentEventCamera().ScreenToWorldPoint(mousePosition);
         lastpos = objectPosition;
     }
 }
Beispiel #7
0
 void Awake()
 {
     _main = this;
 }