Ejemplo n.º 1
0
        public bool contains(IGraphObject3D obj)
        {
            bool flag = this.m_children.Contains(obj as GraphObject3DImpl);
            bool result;

            if (flag)
            {
                result = true;
            }
            else
            {
                for (int i = 0; i < this.m_children.Count; i++)
                {
                    GraphObject3DImpl graphObject3DImpl = this.m_children[i];
                    bool flag2 = graphObject3DImpl != null && graphObject3DImpl is Container3DImpl;
                    if (flag2)
                    {
                        bool flag3 = (graphObject3DImpl as Container3DImpl).contains(obj);
                        if (flag3)
                        {
                            result = true;
                            return(result);
                        }
                    }
                }
                result = false;
            }
            return(result);
        }
Ejemplo n.º 2
0
        public void detachObject(string sBoneName, IGraphObject3D obj)
        {
            bool flag = obj == null;

            if (!flag)
            {
                bool flag2 = this.m_attach.ContainsKey(obj) && this.m_attach[obj] == sBoneName;
                if (flag2)
                {
                    (obj as GraphObject3DImpl).attachTo(null);
                    this.m_attach.Remove(obj);
                }
            }
        }
Ejemplo n.º 3
0
        public void removeChild(IGraphObject3D child)
        {
            bool flag = child == null;

            if (!flag)
            {
                GraphObject3DImpl graphObject3DImpl = child as GraphObject3DImpl;
                bool flag2 = !this.m_children.Contains(graphObject3DImpl);
                if (!flag2)
                {
                    this.m_children.Remove(graphObject3DImpl);
                    graphObject3DImpl.parent = null;
                }
            }
        }
Ejemplo n.º 4
0
        public int indexOf(IGraphObject3D child)
        {
            bool flag = child == null;
            int  result;

            if (flag)
            {
                result = -1;
            }
            else
            {
                GraphObject3DImpl item = child as GraphObject3DImpl;
                result = this.m_children.IndexOf(item);
            }
            return(result);
        }
Ejemplo n.º 5
0
        public GREntity3D rayCast(Vec3 vec)
        {
            IGraphObject3D graphObject3D = this.m_cam.rayCast(vec);
            bool           flag          = graphObject3D != null && graphObject3D.helper.ContainsKey("$graphObj");
            GREntity3D     result;

            if (flag)
            {
                GREntity3D gREntity3D = graphObject3D.helper["$graphObj"] as GREntity3D;
                gREntity3D.dispathEvent(Define.EventType.RAYCASTED, null);
                result = gREntity3D;
            }
            else
            {
                result = null;
            }
            return(result);
        }
Ejemplo n.º 6
0
        public void addChild(IGraphObject3D child)
        {
            bool flag = child == null;

            if (!flag)
            {
                GraphObject3DImpl graphObject3DImpl = child as GraphObject3DImpl;
                bool flag2 = this.m_children.Contains(graphObject3DImpl);
                if (!flag2)
                {
                    this.m_children.Add(graphObject3DImpl);
                    bool flag3 = graphObject3DImpl.parent != null;
                    if (flag3)
                    {
                        graphObject3DImpl.parent.removeChild(child);
                    }
                    graphObject3DImpl.parent = this;
                }
            }
        }
Ejemplo n.º 7
0
        public void attachObject(string sBoneName, IGraphObject3D obj)
        {
            bool flag = obj == null;

            if (!flag)
            {
                bool flag2 = obj.parent != null;
                if (flag2)
                {
                    obj.parent.removeChild(obj);
                }
                this.m_attach[obj] = sBoneName;
                GameObject gameObject = this._getBone(sBoneName);
                bool       flag3      = gameObject != null;
                if (flag3)
                {
                    (obj as GraphObject3DImpl).attachTo(gameObject);
                }
            }
        }
Ejemplo n.º 8
0
        public void addChildAt(IGraphObject3D child, int idx)
        {
            bool flag = child == null;

            if (!flag)
            {
                GraphObject3DImpl graphObject3DImpl = child as GraphObject3DImpl;
                bool flag2 = graphObject3DImpl.parent != null;
                if (flag2)
                {
                    graphObject3DImpl.parent.removeChild(child);
                }
                bool flag3 = idx >= this.m_children.Count;
                if (flag3)
                {
                    this.m_children.Add(graphObject3DImpl);
                }
                else
                {
                    this.m_children.Insert(idx, graphObject3DImpl);
                }
                graphObject3DImpl.parent = this;
            }
        }
Ejemplo n.º 9
0
        private void update(float tmSlice)
        {
            this.m_bTowTouchZoom = false;
            bool flag  = Application.platform == RuntimePlatform.OSXEditor || Application.platform == RuntimePlatform.OSXPlayer || Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer;
            bool flag2 = flag;

            if (flag2)
            {
                float num = Input.GetAxis("Mouse ScrollWheel");
            }
            else
            {
                bool flag3 = 2 == Input.touchCount;
                if (flag3)
                {
                    bool flag4 = !EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId) || !EventSystem.current.IsPointerOverGameObject(Input.GetTouch(1).fingerId);
                    if (flag4)
                    {
                        bool flag5 = Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved;
                        if (flag5)
                        {
                            Vector2 vector = Input.GetTouch(0).position - Input.GetTouch(1).position;
                            bool    flag6  = 0f == this.m_fTwoTouchDis;
                            if (flag6)
                            {
                                this.m_fTwoTouchDis = vector.magnitude;
                            }
                            else
                            {
                                float magnitude = vector.magnitude;
                                float num       = (magnitude - this.m_fTwoTouchDis) * 0.0125f;
                                this.m_fTwoTouchDis  = vector.magnitude;
                                this.m_bTowTouchZoom = true;
                            }
                        }
                    }
                }
                else
                {
                    this.m_fTwoTouchDis = 0f;
                }
            }
            bool flag7 = Input.GetMouseButtonDown(0) || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began);

            if (flag7)
            {
                bool flag8 = (flag && EventSystem.current.IsPointerOverGameObject()) || (!flag && EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId));
                if (flag8)
                {
                    base.dispatchEvent(GameEvent.Create(MouseClickMgr.EVENT_TOUCH_UI, this, EventSystem.current.currentSelectedGameObject, false));
                }
                else
                {
                    bool flag9 = GRMap.GAME_CAM_CAMERA != null && GRMap.GAME_CAM_CAMERA.gameObject.active;
                    if (flag9)
                    {
                        Ray        ray = GRMap.GAME_CAM_CAMERA.ScreenPointToRay(Input.mousePosition);
                        RaycastHit raycastHit;
                        bool       flag10 = Physics.Raycast(ray, out raycastHit);
                        if (flag10)
                        {
                            Object3DBehaviour component = raycastHit.transform.gameObject.GetComponent <Object3DBehaviour>();
                            bool flag11 = component != null;
                            if (flag11)
                            {
                                IGraphObject3D obj        = component.obj;
                                GREntity3D     gREntity3D = obj.helper["$graphObj"] as GREntity3D;
                                gREntity3D.dispathEvent(Define.EventType.RAYCASTED, null);
                            }
                        }
                    }
                    else
                    {
                        bool flag12 = this.curScenceCamera != null && this.curScenceCamera.gameObject.active;
                        if (flag12)
                        {
                            Ray        ray2 = this.curScenceCamera.ScreenPointToRay(Input.mousePosition);
                            RaycastHit raycastHit2;
                            bool       flag13 = Physics.Raycast(ray2, out raycastHit2);
                            if (flag13)
                            {
                                base.dispatchEvent(GameEvent.Create(MouseClickMgr.EVENT_TOUCH_GAME_OBJECT, this, raycastHit2.transform.gameObject, false));
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 10
0
 public void addContainer3D(IGraphObject3D cont)
 {
     (cont as GraphObject3DImpl).u3dObject.transform.parent = this.m_u3dObj.transform;
 }
Ejemplo n.º 11
0
 public void deleteObject3D(IGraphObject3D obj)
 {
     this.deleteObject3D((obj as GraphObject3DImpl).id);
 }
Ejemplo n.º 12
0
        void update(float tmSlice)
        {
            m_bTowTouchZoom = false;
            float fmsw  = 0.0f;
            bool  inWin = Application.platform == RuntimePlatform.OSXEditor || Application.platform == RuntimePlatform.OSXPlayer ||
                          Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer;

            //处理镜头的拉近拉远

            if (inWin)
            {
                fmsw = Input.GetAxis("Mouse ScrollWheel");
            }
            else
            {
                if (2 == Input.touchCount)
                {
                    //只要有一个手指不在UI上,就可以处理拉近拉远
                    if (false == EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId) || false == EventSystem.current.IsPointerOverGameObject(Input.GetTouch(1).fingerId))
                    {
                        if (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved)
                        {
                            Vector2 two_touch_pos_offset = Input.GetTouch(0).position - Input.GetTouch(1).position;
                            if (0.0f == m_fTwoTouchDis)
                            {
                                m_fTwoTouchDis = two_touch_pos_offset.magnitude;
                            }
                            else
                            {
                                float cur_dis = two_touch_pos_offset.magnitude;
                                fmsw           = (cur_dis - m_fTwoTouchDis) * 0.0125f;
                                m_fTwoTouchDis = two_touch_pos_offset.magnitude;

                                m_bTowTouchZoom = true;
                            }
                        }
                    }
                }
                else
                {
                    m_fTwoTouchDis = 0.0f;
                }
            }

            if (false) //a3暂时屏蔽,滚轮拉近拉远的处理
            {
                if (fmsw != 0f || m_UpdateNearCamNow)
                {
                    m_UpdateNearCamNow = false;
                    //debug.Log("鼠标的滚轮在动 " + fmsw);
                    GRMap.M_FToCameraNearStep += fmsw * 0.2f;

                    if (GRMap.M_FToCameraNearStep < 0f)
                    {
                        GRMap.M_FToCameraNearStep = 0f;
                    }
                    if (GRMap.M_FToCameraNearStep > 1f)
                    {
                        GRMap.M_FToCameraNearStep = 1f;
                    }

                    //读取主角的坐骑的摄像机参数
                    Vector3 near_pos = GRMap.M_VGame_Cam_FARpos;
                    near_pos.x *= lgSelfPlayer.instance.m_fCameraNearXZ;
                    near_pos.y  = lgSelfPlayer.instance.m_fCameraNearH;
                    near_pos.z *= lgSelfPlayer.instance.m_fCameraNearXZ;

                    Vector3 near_angle = GRMap.M_VGame_Cam_FARrot;
                    near_angle.x = 30f;

                    GRMap.GAME_CAM_CUR.transform.localPosition    = Vector3.Lerp(GRMap.M_VGame_Cam_FARpos, near_pos, GRMap.M_FToCameraNearStep);
                    GRMap.GAME_CAM_CUR.transform.localEulerAngles = Vector3.Lerp(GRMap.M_VGame_Cam_FARrot, near_angle, GRMap.M_FToCameraNearStep);
                }
            }


            bool mouseTouch = Input.GetMouseButtonDown(0);

            if (mouseTouch || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began))
            {
                // if(ui_main_camera==null)
                //     ui_main_camera = GameObject.Find("ui_main_camera").GetComponent<Camera>();
                // Vector3 stwp = ui_main_camera.ScreenToWorldPoint(Input.mousePosition);
                //stwp.z = 0f;

                //if (mouseTouch)
                //{
                //    FightText.play(FightText.MOUSE_POINT, Input.mousePosition, 0);
                //}
                //else
                //{
                //    for (int i = 0; i < Input.touchCount; i++)
                //    {
                //        Touch t = Input.GetTouch(i);
                //        FightText.play(FightText.MOUSE_POINT, t.position, 0);
                //    }
                //}

                if ((inWin && EventSystem.current.IsPointerOverGameObject()) ||
                    (!inWin && EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
                    )
                {
                    dispatchEvent(GameEvent.Create(EVENT_TOUCH_UI, this, EventSystem.current.currentSelectedGameObject));

                    //    debug.Log("当前触摸在UI上");
                }
                else if (GRMap.GAME_CAM_CAMERA != null && GRMap.GAME_CAM_CAMERA.gameObject.active)
                {
                    //   debug.Log("当前触摸不在UI上:" + GRMap.GAME_CAM_CAMERA.active);

                    Ray        ray = GRMap.GAME_CAM_CAMERA.ScreenPointToRay(Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit))
                    {
                        Object3DBehaviour behav = hit.transform.gameObject.GetComponent <Object3DBehaviour>();
                        if (behav != null)
                        {
                            IGraphObject3D obj    = behav.obj;
                            GREntity3D     hitEnt = obj.helper["$graphObj"] as GREntity3D;
                            hitEnt.dispathEvent(Define.EventType.RAYCASTED, null);
                        }
                    }
                }
                else if (curScenceCamera != null && curScenceCamera.gameObject.active == true)
                {
                    Ray        ray = curScenceCamera.ScreenPointToRay(Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit))
                    {
                        dispatchEvent(GameEvent.Create(EVENT_TOUCH_GAME_OBJECT, this, hit.transform.gameObject));
                    }
                }
            }
        }