コード例 #1
0
 private void Awake()
 {
     if (m_SelfData == null)
     {
         m_SelfData = new ModelInfoData();
     }
 }
コード例 #2
0
 /// <summary>
 /// 根据传值设置属性值
 /// </summary>
 public void SetItemInfo(ModelInfoData infodata)
 {
     m_SelfData            = infodata;
     transform.position    = new Vector3(float.Parse(infodata.mapX), float.Parse(infodata.mapY), float.Parse(infodata.mapZ));
     transform.eulerAngles = new Vector3(float.Parse(infodata.rotateX), float.Parse(infodata.rotateY), float.Parse(infodata.rotateZ));
     transform.localScale  = new Vector3(float.Parse(infodata.scaleX), float.Parse(infodata.scaleY), float.Parse(infodata.scaleZ));
 }
コード例 #3
0
        void DoLoadResource(IInfoData iData, GameObject loadObj, object fun, object param)
        {
            ModelInfoData infoData = iData as ModelInfoData;

            if (infoData == null)
            {
                return;
            }

            Debug.Log("DoLoadResource:" + infoData.name);

            ClientCha clientCha = param as ClientCha;

            if (clientCha == null)
            {
                return;
            }

            GameObject newModelObj = GameObject.Instantiate(loadObj, clientCha.transform) as GameObject;

            if (newModelObj == null)
            {
                return;
            }
        }
コード例 #4
0
ファイル: ReadJavaInterface.cs プロジェクト: WMZL/WebGLNew
    public void LoadConfigObjects()
    {
        RecvJsonClass recvData = JsonMapper.ToObject <RecvJsonClass>(m_RecvJsonStr);
        ModelInfoData infodata = new ModelInfoData();

        #region 原有的数值
        infodata.modelid         = recvData.modelid;
        infodata.isNew           = recvData.isNew;
        infodata.isAdd           = recvData.isAdd;
        infodata.cameraX         = recvData.cameraX.ToString();
        infodata.cameraY         = recvData.cameraY.ToString();
        infodata.cameraZ         = recvData.cameraZ.ToString();
        infodata.cameraRotateX   = recvData.cameraRotateX.ToString();
        infodata.cameraRotateY   = recvData.cameraRotateY.ToString();
        infodata.cameraRotateZ   = recvData.cameraRotateZ.ToString();
        infodata.colliderCenterX = recvData.colliderCenterX.ToString();
        infodata.colliderCenterY = recvData.colliderCenterY.ToString();
        infodata.colliderCenterZ = recvData.colliderCenterZ.ToString();
        infodata.colliderSizeX   = recvData.colliderCenterX.ToString();
        infodata.colliderSizeY   = recvData.colliderCenterY.ToString();
        infodata.colliderSizeZ   = recvData.colliderCenterZ.ToString();
        if (infodata.isNew == 0)
        {
            MessageManager.Instance.SendMessageEventNow("LoadConfigObject", infodata);
            return;
        }
        infodata.type          = recvData.type;
        infodata.mapX          = recvData.mapX.ToString();
        infodata.mapY          = recvData.mapY.ToString();
        infodata.mapZ          = recvData.mapZ.ToString();
        infodata.rotateX       = recvData.rotateX.ToString();
        infodata.rotateY       = recvData.rotateY.ToString();
        infodata.rotateZ       = recvData.rotateZ.ToString();
        infodata.scaleX        = recvData.scaleX.ToString();
        infodata.scaleY        = recvData.scaleY.ToString();
        infodata.scaleZ        = recvData.scaleZ.ToString();
        infodata.originalColor = recvData.originalColor;
        infodata.selectedColor = recvData.selectedColor;
        infodata.alarmColor    = recvData.alarmColor;
        infodata.cmd           = recvData.cmd;
        infodata.devName       = recvData.devName;

        infodata.nodeList = new List <ModelInfoData.CanvasInfo>();
        for (int i = 0; i < recvData.nodeList.Count; i++)
        {
            ModelInfoData.CanvasInfo canvasinfo = new ModelInfoData.CanvasInfo();
            canvasinfo.nodeName = recvData.nodeList[i].nodeName;
            canvasinfo.unit     = recvData.nodeList[i].unit;
            canvasinfo.value    = recvData.nodeList[i].value;
            infodata.nodeList.Add(canvasinfo);
        }

        MessageManager.Instance.SendMessageEventNow("LoadConfigObject", infodata);
        #endregion
    }
コード例 #5
0
ファイル: ModelManager.cs プロジェクト: WMZL/WebGLNew
    /// <summary>
    /// 加载模型完成回调
    /// </summary>
    private void LoadModelCallback(ModelInfoData infodata, ResourceInfo info, GameObject go)
    {
        m_ModelPool.PushControlObject(infodata.type, go);
        GameObject newModel = m_ModelPool.GetPoolsObject(infodata.type);

        if (newModel == null)
        {
            Debug.LogError("无法取到对象池模型!");
        }

        SetModeInfo(infodata, newModel);
    }
コード例 #6
0
ファイル: ModelManager.cs プロジェクト: WMZL/WebGLNew
    /// <summary>
    /// 加载之前保存的所有模型
    /// </summary>
    private void LoadConfigObject(string key, params object[] parms)
    {
        ModelInfoData realdata = parms[0] as ModelInfoData;

        if (realdata.isNew == 0)//旧模型加Collider
        {
            Debug.Log("旧模型加Collider");
            if (GenerateTreeNeed.Instance.AllGameObjectDic.ContainsKey(realdata.modelid))
            {
                GameObject oldobj = GenerateTreeNeed.Instance.AllGameObjectDic[realdata.modelid];
                oldobj.tag = "Device";
                BoxCollider bc = oldobj.GetComponent <BoxCollider>();
                if (!bc)
                {
                    bc = oldobj.AddComponent <BoxCollider>();
                    Vector3 center = new Vector3(float.Parse(realdata.colliderCenterX), float.Parse(realdata.colliderCenterY), float.Parse(realdata.colliderCenterZ));
                    bc.center = center;
                    Vector3 size = new Vector3(float.Parse(realdata.colliderSizeX), float.Parse(realdata.colliderSizeY), float.Parse(realdata.colliderSizeZ));
                    bc.size = size;
                }
                ModelInfo info = oldobj.GetComponent <ModelInfo>();
                if (!info)
                {
                    info = oldobj.AddComponent <ModelInfo>();
                    info.SelfData.cameraX       = realdata.cameraX;
                    info.SelfData.cameraY       = realdata.cameraY;
                    info.SelfData.cameraZ       = realdata.cameraZ;
                    info.SelfData.cameraRotateX = realdata.cameraRotateX;
                    info.SelfData.cameraRotateY = realdata.cameraRotateY;
                    info.SelfData.cameraRotateZ = realdata.cameraRotateZ;
                    info.SelfData.isAdd         = realdata.isAdd;
                    info.SelfData.isNew         = realdata.isNew;
                }
            }
        }
        else
        {
            Debug.Log("加载之前保存的模型");
            GameObject go = m_ModelPool.GetPoolsObject(realdata.type);
            if (go != null)
            {
                SetModeInfo(realdata, go);
            }
            else
            {
                ResourceLoadCallbacak cb = new ResourceLoadCallbacak(realdata, LoadModelCallback);
                ResourceManager.Instance.LoadResource(realdata.type.ToString(), ResourceType.Device, cb);
            }
        }
    }
コード例 #7
0
        public void LoadResource(ModelInfoData infoData, OnLoadResourceDelegate delOpenUI = null, object param = null)
        {
            GameObject clientObj = CreateClientChaRoot();

            if (clientObj == null)
            {
                return;
            }

            ClientCha clientCha = clientObj.GetComponent <ClientCha>();

            if (clientCha == null)
            {
                clientCha = clientObj.AddComponent <ClientCha>();
            }

            CreateNPCMdjInitProperty(clientCha, infoData);
        }
コード例 #8
0
ファイル: GenerateTreeNeed.cs プロジェクト: WMZL/WebGLNew
    /// <summary>
    /// 编辑结束
    /// </summary>
    private void EndEdit(string key, params object[] parms)
    {
        string id = parms[0].ToString();

        Debug.Log(id + " " + GameTools.Instance.GenerateMD5(m_CurSelectObj.name) + "是否一致");
        DrawCollider dc = m_CurSelectObj.GetComponent <DrawCollider>();

        if (dc)
        {
            dc.enabled = false;
        }
        BoxCollider bc = m_CurSelectObj.GetComponent <BoxCollider>();

        if (bc)
        {
            Transform     cam  = Camera.main.transform;
            ModelInfoData data = new ModelInfoData();
            data.cmd             = (int)U3DSENGTOJSMSG.SENDOBJECTDATA;
            data.modelid         = id;
            data.colliderCenterX = bc.center.x.ToString();
            data.colliderCenterY = bc.center.y.ToString();
            data.colliderCenterZ = bc.center.z.ToString();
            data.colliderSizeX   = bc.size.x.ToString();
            data.colliderSizeY   = bc.size.y.ToString();
            data.colliderSizeZ   = bc.size.z.ToString();
            data.cameraX         = cam.position.x.ToString();
            data.cameraY         = cam.position.y.ToString();
            data.cameraZ         = cam.position.z.ToString();
            data.cameraRotateX   = cam.eulerAngles.x.ToString();
            data.cameraRotateY   = cam.eulerAngles.y.ToString();
            data.cameraRotateZ   = cam.eulerAngles.z.ToString();
            data.originalColor   = "";
            data.selectedColor   = GameTools.Instance.ColorToHex(Color.yellow);
            data.alarmColor      = GameTools.Instance.ColorToHex(Color.red);
            JsonData jd      = JsonMapper.ToJson(data);
            string   strJSon = jd.ToString();
            ReadJavaInterface.Hello(strJSon);
        }
        else
        {
            Debug.Log(m_CurSelectObj + "没有collider,10011没有返回");
        }
    }
コード例 #9
0
ファイル: ModelManager.cs プロジェクト: WMZL/WebGLNew
    /// <summary>
    /// 添加新模型,处理
    /// 对象池存储的唯一ID,是类型type字段
    /// </summary>
    private void AddANewModel(string key, params object[] arms)
    {
        int           type     = (int)arms[0];
        ModelInfoData infodata = new ModelInfoData();

        infodata.cmd  = 10009;
        infodata.type = type;
        GameObject go = m_ModelPool.GetPoolsObject(type);

        if (go != null)
        {
            SetModeInfo(infodata, go);
        }
        else
        {
            ResourceLoadCallbacak cb = new ResourceLoadCallbacak(infodata, LoadModelCallback);
            ResourceManager.Instance.LoadResource(infodata.type.ToString(), ResourceType.Device, cb);
        }
    }
コード例 #10
0
ファイル: ReadJavaInterface.cs プロジェクト: WMZL/WebGLNew
    /// <summary>
    /// 根据JS从数据库读取的数据动态加载模型
    /// </summary>
    public void LoadConfigObject(string test)
    {
        JsonData      m_RecvJsonData = JsonMapper.ToObject(test);
        ModelInfoData infodata       = new ModelInfoData();

        infodata.modelid         = m_RecvJsonData["modelid"].ToString();
        infodata.isNew           = (int)m_RecvJsonData["isNew"];
        infodata.isAdd           = (int)m_RecvJsonData["isAdd"];
        infodata.cameraX         = m_RecvJsonData["cameraX"].ToString();
        infodata.cameraY         = m_RecvJsonData["cameraY"].ToString();
        infodata.cameraZ         = m_RecvJsonData["cameraZ"].ToString();
        infodata.cameraRotateX   = m_RecvJsonData["cameraRotateX"].ToString();
        infodata.cameraRotateY   = m_RecvJsonData["cameraRotateY"].ToString();
        infodata.cameraRotateZ   = m_RecvJsonData["cameraRotateZ"].ToString();
        infodata.colliderCenterX = m_RecvJsonData["colliderCenterX"].ToString();
        infodata.colliderCenterY = m_RecvJsonData["colliderCenterY"].ToString();
        infodata.colliderCenterZ = m_RecvJsonData["colliderCenterZ"].ToString();
        infodata.colliderSizeX   = m_RecvJsonData["colliderSizeX"].ToString();
        infodata.colliderSizeY   = m_RecvJsonData["colliderSizeY"].ToString();
        infodata.colliderSizeZ   = m_RecvJsonData["colliderSizeZ"].ToString();
        if (infodata.isNew == 0)
        {
            MessageManager.Instance.SendMessageEventNow("LoadConfigObject", infodata);
            return;
        }

        infodata.type          = (int)m_RecvJsonData["type"];
        infodata.mapX          = m_RecvJsonData["mapX"].ToString();
        infodata.mapY          = m_RecvJsonData["mapY"].ToString();
        infodata.mapZ          = m_RecvJsonData["mapZ"].ToString();
        infodata.rotateX       = m_RecvJsonData["rotateX"].ToString();
        infodata.rotateY       = m_RecvJsonData["rotateY"].ToString();
        infodata.rotateZ       = m_RecvJsonData["rotateZ"].ToString();
        infodata.scaleX        = m_RecvJsonData["scaleX"].ToString();
        infodata.scaleY        = m_RecvJsonData["scaleY"].ToString();
        infodata.scaleZ        = m_RecvJsonData["scaleZ"].ToString();
        infodata.originalColor = m_RecvJsonData["originalColor"].ToString();
        infodata.selectedColor = m_RecvJsonData["selectedColor"].ToString();
        infodata.alarmColor    = m_RecvJsonData["alarmColor"].ToString();

        MessageManager.Instance.SendMessageEventNow("LoadConfigObject", infodata);
    }
コード例 #11
0
        void OnGUI()
        {
            if (GUILayout.Button("showUI"))
            {
                UIManager.Instance().ShowUI(UIInfo.CubeItem);
            }
            if (GUILayout.Button("closeUI"))
            {
                UIManager.Instance().CloseUI(UIInfo.CubeItem);
            }

            if (GUILayout.Button("show Item UI"))
            {
                UIManager.Instance().LoadItem(UIInfo.CubeItem, OnLoadUIItemDelegate);
            }

            if (GUILayout.Button("show Model"))
            {
                ModelInfoData infoData = new ModelInfoData("Model", "Ethan");

                SceneResourceManager.Instance().LoadResource(infoData);
            }
        }
コード例 #12
0
ファイル: ModelManager.cs プロジェクト: WMZL/WebGLNew
    /// <summary>
    /// 处理传感器上面的布告牌
    /// 设置信息
    /// </summary>
    private void DealBoard(ModelInfoData infodata, GameObject go)
    {
        Transform zuobiao = go.transform.Find("zuobiao");

        zuobiao.SetParent(go.transform.parent);
        zuobiao.transform.localPosition = go.transform.localPosition + new Vector3(0, 2, 0);
        //zuobiao.transform.localPosition = new Vector3(zuobiao.transform.localPosition.x, 10, zuobiao.transform.localPosition.z);
        zuobiao.transform.localScale = Vector3.one * 5;
        zuobiao.eulerAngles          = new Vector3(-90, 0, 0);

        Text canvastext = zuobiao.Find("Canvas").GetComponentInChildren <Text>();

        //canvastext.text = infodata.devName + "\n";
        for (int i = 0; i < infodata.nodeList.Count; i++)
        {
            canvastext.text += infodata.nodeList[i].nodeName + ":" + infodata.nodeList[i].value + infodata.nodeList[i].unit + "\n";
            if (i == infodata.nodeList.Count)
            {
                canvastext.text = canvastext.text.Replace("\n", "");
            }
        }
        zuobiao.SetParent(go.transform);
        zuobiao.gameObject.SetActive(true);
    }
コード例 #13
0
    /// <summary>
    /// 更新数据
    /// </summary>
    public void UpdateModelInfo(ModelInfoData value)
    {
        SelfData = new ModelInfoData();
        Camera cam = Camera.main;

        SelfData.type          = value.type;
        SelfData.modelid       = GameTools.Instance.GenerateMD5(transform.name);
        SelfData.mapX          = transform.position.x.ToString();
        SelfData.mapY          = transform.position.y.ToString();
        SelfData.mapZ          = transform.position.z.ToString();
        SelfData.rotateX       = transform.eulerAngles.x.ToString();
        SelfData.rotateY       = transform.eulerAngles.y.ToString();
        SelfData.rotateZ       = transform.eulerAngles.z.ToString();
        SelfData.scaleX        = transform.localScale.x.ToString();
        SelfData.scaleY        = transform.localScale.y.ToString();
        SelfData.scaleZ        = transform.localScale.z.ToString();
        SelfData.cameraX       = cam.transform.position.x.ToString();
        SelfData.cameraY       = cam.transform.position.y.ToString();
        SelfData.cameraZ       = cam.transform.position.z.ToString();
        SelfData.cameraRotateX = cam.transform.eulerAngles.x.ToString();
        SelfData.cameraRotateY = cam.transform.eulerAngles.y.ToString();
        SelfData.cameraRotateZ = cam.transform.eulerAngles.z.ToString();
        SelfData.originalColor = GameTools.Instance.ColorToHex(transform.GetComponentInChildren <MeshRenderer>().material.color);
        Highlighter h = transform.GetComponent <Highlighter>();

        if (h)
        {
            SelfData.selectedColor = GameTools.Instance.ColorToHex(h.constantColor);
        }
        else
        {
            SelfData.selectedColor = GameTools.Instance.ColorToHex(Color.yellow);
        }

        SelfData.alarmColor = GameTools.Instance.ColorToHex(Color.red);
    }
コード例 #14
0
 public void CreateNPCMdjInitProperty(ClientCha npcCha, ModelInfoData infoData, OnLoadResourceDelegate delOpenUI = null, object param = null)
 {
     StartCoroutine(BundleManager.Instance.LoadSceneResource(infoData, DoLoadResource, delOpenUI, npcCha));
 }
コード例 #15
0
ファイル: ModelManager.cs プロジェクト: WMZL/WebGLNew
    /// <summary>
    /// 设置添加模型的信息
    /// </summary>
    private void SetModeInfo(ModelInfoData infodata, GameObject go)
    {
        if (!m_SensorParent.ContainsKey(infodata.type))
        {
            GameObject tran = new GameObject(infodata.type.ToString());
            tran.transform.SetParent(m_NewModelParent);
            go.transform.SetParent(tran.transform);
            m_SensorParent.Add(infodata.type, tran.transform);
        }
        else
        {
            go.transform.SetParent(m_SensorParent[infodata.type]);
        }

        ModelInfo info = go.GetComponent <ModelInfo>();

        if (!info)
        {
            info = go.AddComponent <ModelInfo>();
        }
        if (info == null)
        {
            Debug.LogError("出现错误");
            return;
        }

        GenerateTreeNeed.SumCount++;
        go.name = GenerateTreeNeed.SumCount.ToString();
        string id = Guid.NewGuid().ToString("N");

        Debug.Log("随机成成的:" + id);
        string md5id = GameTools.Instance.GenerateMD5(go.name);

        if (!GenerateTreeNeed.Instance.AllGameObjectDic.ContainsKey(md5id))
        {
            GenerateTreeNeed.Instance.AllGameObjectDic.Add(md5id, go);
        }
        else
        {
            Debug.LogError("数据出错!");
        }
        if (!m_NewModelDic.ContainsKey(md5id))
        {
            m_NewModelDic.Add(md5id, info);
        }
        else
        {
            Debug.LogError("数据错误!");
        }

        m_CurAddGameObject = go;
        if (infodata.cmd == 10009)
        {
            go.transform.position   = Vector3.zero + m_Offset;
            go.transform.localScale = Vector3.one;

            info.UpdateModelInfo(infodata);
            MessageManager.Instance.SendMessageEventNow("RecvLocateGameObject", md5id, true, Vector3.zero, Vector3.one, 0, false);
        }
        else
        {
            info.SetItemInfo(infodata);
        }
        SGizmoBehavior sb = go.GetComponent <SGizmoBehavior>();

        if (!sb)
        {
            if (infodata.isAdd == 0)
            {
                sb = go.AddComponent <SGizmoBehavior>();
            }
            else if (infodata.isAdd == 1)
            {
                DealBoard(infodata, go);
            }
        }
        go.SetActive(true);
    }
コード例 #16
0
 /// <summary>
 /// 清空数据
 /// </summary>
 public void ClearData()
 {
     m_SelfData = null;
 }
コード例 #17
0
ファイル: ModelManager.cs プロジェクト: WMZL/WebGLNew
 public ResourceLoadCallbacak(ModelInfoData data, Action <ModelInfoData, ResourceInfo, GameObject> fun)
 {
     m_CallBackFun = fun;
     m_Target      = data;
 }
コード例 #18
0
    void Start()
    {
        _environmentColorButton.onClick.AddListener(() =>
        {
            GameObject colorPanel           = ResourceManager.Instance.LoadUIPrefab(transform, "ColorPanel");
            colorPanel.transform.localScale = Vector3.one * 2;
        });

        _house.onClick.AddListener(() =>
        {
            EventCenter.Instance.PostEvent(EventName.CreateModel, "House");
        });

        _paint.onClick.AddListener(() =>
        {
            //EventCenter.Instance.PostEvent(EventName.CreateModel, "hang_paint");
            ModelInfoData modelInfoData = _paint.GetComponent <ModelInfoData>();
            string[] info = new string[4] {
                modelInfoData.Category, modelInfoData.name, modelInfoData.ImageLocalPos, modelInfoData.ModelLocalPos
            };
            EventCenter.Instance.PostEvent(EventName.CreateTempObj, "TempObj", info);
        });

        _chair.onClick.AddListener(() =>
        {
            EventCenter.Instance.PostEvent(EventName.CreateModel, "furniture_chair");
        });

        _cup.onClick.AddListener(() =>
        {
            EventCenter.Instance.PostEvent(EventName.CreateModel, "furniture_cup");
        });

        _loadModel.onClick.AddListener(() =>
        {
            GetModelPath.OpenFileDialog();
        });

        _loadChandelier.onClick.AddListener(() =>
        {
            EventCenter.Instance.PostEvent(EventName.CreateModel, "chandelier_light");
        });

        _loadWallPaper.onClick.AddListener(() =>
        {
            EventCenter.Instance.PostEvent(EventName.CreateModel, "hang_wallPaper");
        });

        //record the scene model
        _record.onClick.AddListener(() =>
        {
            EventCenter.Instance.PostEvent(EventName.RecordScene);
        });

        //recover the scene model
        _recover.onClick.AddListener(() =>
        {
            EventCenter.Instance.PostEvent(EventName.RecoverScene);
        });

        //右旋转按下
        UGUIEventListener.Get(_rightRotation.gameObject).onPointDown = (body) =>
        {
            Transform touchObject = RayEvent.Instance.clickObjectOfLeftButton;
            if (null != touchObject && touchObject.GetComponent <ModelCategory>())
            {
                touchObject.GetComponent <ModelCategory>().RightRotation(true);
            }
        };

        //右旋转松开
        UGUIEventListener.Get(_rightRotation.gameObject).onPointUp = (body) =>
        {
            Transform touchObject = RayEvent.Instance.clickObjectOfLeftButton;
            if (null != touchObject && touchObject.GetComponent <ModelCategory>())
            {
                touchObject.GetComponent <ModelCategory>().RightRotation(false);
            }
        };

        //左旋转按下
        UGUIEventListener.Get(_leftRotation.gameObject).onPointDown = (body) =>
        {
            Transform touchObject = RayEvent.Instance.clickObjectOfLeftButton;
            if (null != touchObject && touchObject.GetComponent <ModelCategory>())
            {
                touchObject.GetComponent <ModelCategory>().LeftRotation(true);
            }
        };

        //左旋转松开
        UGUIEventListener.Get(_leftRotation.gameObject).onPointUp = (body) =>
        {
            Transform touchObject = RayEvent.Instance.clickObjectOfLeftButton;
            if (null != touchObject && touchObject.GetComponent <ModelCategory>())
            {
                touchObject.GetComponent <ModelCategory>().LeftRotation(false);
            }
        };

        //删除模型
        _deleteModel.onClick.AddListener(() =>
        {
            Transform TouchObject = RayEvent.Instance.clickObjectOfLeftButton;
            if (null != TouchObject && TouchObject.GetComponent <ModelCategory>())
            {
                ModelCategory modelCategory = TouchObject.GetComponent <ModelCategory>();
                bool canDelete = modelCategory.CanDelete();

                if (canDelete)
                {
                    Transform tools = modelCategory.toolNode;

                    if (tools.childCount > 0)
                    {
                        Transform dragVectorTool = tools.Find("DragVector");
                        if (null != dragVectorTool)
                        {
                            ControlObjMove.Instance.SetParentNull();
                        }
                    }

                    if (TouchObject)
                    {
                        EventCenter.Instance.PostEvent(EventName.DeleteModel, TouchObject);
                    }
                }
            }
        });

        //首先点击了就可以知道图片和模型名字了跟路径信息了,传到生产的物体里,然后直接判断点击的地方是否满足
    }