public void InitCameraManager() { GameObject camera = new GameObject("GameCamera", typeof(Camera)); camerarotatesphere = camera.AddComponent <CameraRotateSphere>(); camera.transform.SetParent(transform); QMsg Normalmsg = new ModelMsg() { EventID = (int)Model_E.Normal, modelevent = Model_E.SetCamera, selfcamera = camera.GetComponent <Camera>() }; SendMsg(Normalmsg); QMsg Usermsg = new ModelMsg() { EventID = (int)Model_E.UserImport, modelevent = Model_E.SetCamera, selfcamera = camera.GetComponent <Camera>() }; SendMsg(Usermsg); QMsg normalPointmsg = new PointMsg() { EventID = (int)Point_E.Normal, controllmode = PointControll_E.SetCamra, selfcamra = camera.GetComponent <Camera>() }; SendMsg(normalPointmsg); QMsg userPointmsg = new PointMsg() { EventID = (int)Point_E.Userimport, controllmode = PointControll_E.SetCamra, selfcamra = camera.GetComponent <Camera>() }; SendMsg(userPointmsg); RegetsSelfEvent(); }
protected override void LoadModel(ModelMsg obj) { ReleaseOld(); totle++; ModelMsg mm = obj; string stlpath = Tool.LocalModelonSavePath + mm.pdata.ID + Tool.STLfiledir;// mm.pdata.LocalUserModelPath;// if (!Tool.CheckFileExist(stlpath)) { Debug.LogError("根据ID查找模型 不存在,加载默认模型"); } GameObject realmodel = new GameObject("UserImprot" + totle, typeof(STL)); realmodel.transform.SetParent(transform); STL stlloalder = realmodel.GetComponent <STL>(); stlloalder.CreateInstance(stlpath, str => { }, go => { AdjustmentChild(go, PlayerDataCenter.Instance.MaterialMap[Tool.MatarialsUse.UserimportModel]); LoadGizmopointer(mm.pointmap, go.transform, SelfPointMode); go.transform.SetParent(realmodel.transform); go.transform.localScale = Vector3.one * Tool.UserImportScaler; }); lastrealmodel = realmodel; }
public void CreateSimulationModel() { if (m_Colliding) { return; } GameObject simModel = Instantiate(SimulationModel, transform.position, transform.rotation); simModel.name = SimulationModel.name; InputManager.Instance.ModelSpawn_Controller.Operating = false; Destroy(InputManager.Instance.Selector_Tool.CurrentPreviewModel.gameObject); InputManager.Instance.Selector_Tool.CurrentPreviewModel = null; if (SimulationModel.GetComponent <ROSObject>() == null) { return; } // publish a message to add the object to ros node List <string> objects = new List <string>(); objects.Add(SimulationModel.name); List <Vector3> positions = new List <Vector3>(); positions.Add(GazeboUtility.UnityPositionToGazebo(transform.position)); ModelMsg msg = new ModelMsg(1, 1, objects, positions); ROSBridge.Instance.Publish(RoboyModelPublisher.GetMessageTopic(), msg); RoboyManager.Instance.AddRoboy(simModel.transform); }
QMsg CreatMsg(Model_E eventid, Model_E modleevent = Model_E.Begin, ModelTranslate_E modeltranslate = ModelTranslate_E.Begin, float valuedir = 0) { QMsg modelmsg = new ModelMsg() { EventID = (int)eventid, modelevent = modleevent, translateevent = modeltranslate, Changdir = valuedir }; return(modelmsg); }
public void OnLeveThisPage() { QMsg modelmsg = new ModelMsg() { EventID = (int)Model_E.UserImport, modelevent = Model_E.Ido }; ModelManager.Instance.SendMsg(modelmsg); }
/// 平移 void OnTranslateChange(ModelTranslate_E mte) { QMsg modelmsg = new ModelMsg() { EventID = (int)Model_E.UserImport, translateevent = mte }; ModelManager.Instance.SendMsg(modelmsg); }
///XYZ及等比缩放 void OnScalerSliderChange(ModelTranslate_E mte, float endvalue) { QMsg modelmsg = new ModelMsg() { EventID = (int)Model_E.Normal, translateevent = mte, Changdir = endvalue }; ModelManager.Instance.SendMsg(modelmsg); }
///旋转 void OnRotateSliderChange(float endvalue) { QMsg modelmsg = new ModelMsg() { EventID = (int)Model_E.UserImport, translateevent = ModelTranslate_E.Rotate, Changdir = endvalue }; ModelManager.Instance.SendMsg(modelmsg); }
public void OnEnterThisPage() { ChoisePanel(firstchoise); QMsg modelmsg = new ModelMsg() { EventID = (int)Model_E.UserImport, modelevent = Model_E.Rotate }; ModelManager.Instance.SendMsg(modelmsg); }
protected override void ProcessMsg(int eventId, QMsg msg) { ModelMsg mm = msg as ModelMsg; switch (eventId) { case (int)Model_E.Normal: normalmodelcontroller.HandlerEvent(mm); break; case (int)Model_E.UserImport: userimportcontroller.HandlerEvent(mm); break; default: break; } }
protected override void LoadModel(ModelMsg obj) { ReleaseOld(); totle++; ModelMsg mm = obj; string stlpath = Tool.LocalNormalModelPath + mm.pdata.md5 + Tool.STLfiledir;// mm.pdata.Normalmodelpath;// GameObject realmodel = new GameObject("NormalModel" + totle, typeof(STL)); realmodel.transform.SetParent(transform); STL stlloalder = realmodel.GetComponent <STL>(); stlloalder.CreateInstance(stlpath, str => { }, go => { AdjustmentChild(go, PlayerDataCenter.Instance.MaterialMap[Tool.MatarialsUse.NormalModel]); LoadGizmopointer(mm.pointmap, go.transform, SelfPointMode); go.transform.SetParent(realmodel.transform); go.transform.localScale = Vector3.one * Tool.UserImportScaler; selforiginscaler = transform.localScale.x; }); Transform cameratarget = new GameObject("Camratarget").transform; cameratarget.SetParent(realmodel.transform); cameratarget.localPosition = Vector3.zero; QMsg msg = new CameraControllMsg() { EventID = (int)Camera_E.Begin, cameraevent = Camera_E.Target, camerarotatetarget = cameratarget }; CameraManager.Instance.SendMsg(msg); lastrealmodel = realmodel; }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { List <string> objects = new List <string>(); objects.Add("Roboy_simplified"); List <Vector3> positions = new List <Vector3>(); positions.Add(GazeboUtility.UnityPositionToGazebo(new Vector3(2.3123f, 2.2311f, 0.5f))); ModelMsg msg = new ModelMsg(1, 1, objects, positions); Debug.Log(msg.ToYAMLString()); ROSBridge.Instance.Publish(RoboyModelPublisher.GetMessageTopic(), msg); } else if (Input.GetKeyDown(KeyCode.Escape)) { List <string> objects = new List <string>(); objects.Add("Roboy_simplified"); List <Vector3> positions = new List <Vector3>(); positions.Add(Vector3.zero); ModelMsg msg = new ModelMsg(0, 1, objects, positions); ROSBridge.Instance.Publish(RoboyModelPublisher.GetMessageTopic(), msg); } }
void Start() { Button Rotate = transform.Find("RotateButton").GetComponent <Button>(); Button translate = transform.Find("TranslateButton").GetComponent <Button>(); Button scaler = transform.Find("ScalerButton").GetComponent <Button>(); Rotate.onClick.AddListener(() => { ChoisePanel(Rotate); QMsg modelmsg = new ModelMsg() { EventID = (int)Model_E.UserImport, modelevent = Model_E.Rotate }; ModelManager.Instance.SendMsg(modelmsg); }); translate.onClick.AddListener(() => { QMsg modelmsg = new ModelMsg() { EventID = (int)Model_E.UserImport, modelevent = Model_E.translate }; ModelManager.Instance.SendMsg(modelmsg); ChoisePanel(translate); }); scaler.onClick.AddListener(() => { QMsg Usermodelmsg = new ModelMsg() { EventID = (int)Model_E.UserImport, modelevent = Model_E.Scaler }; ModelManager.Instance.SendMsg(Usermodelmsg); QMsg Normalmodelmsg = new ModelMsg() { EventID = (int)Model_E.Normal, modelevent = Model_E.Scaler }; ModelManager.Instance.SendMsg(Normalmodelmsg); ChoisePanel(scaler); }); Transform RotatePanel = transform.Find("RotatePanel"); Transform TranslatePanel = transform.Find("TranslatePanel"); Transform ScalerPanel = transform.Find("ScalerPanel"); RegestToMap(Rotate, RotatePanel.gameObject); RegestToMap(translate, TranslatePanel.gameObject); RegestToMap(scaler, ScalerPanel.gameObject); Slider S_rotate = RotatePanel.GetComponentInChildren <Slider>(); InputField I_rotate = RotatePanel.GetComponentInChildren <InputField>(); Slider S_XYZscaler = ScalerPanel.transform.Find("XYZPanel").GetComponentInChildren <Slider>(); InputField I_XYZscaler = ScalerPanel.transform.Find("XYZPanel").GetComponentInChildren <InputField>(); Slider S_Xscaler = ScalerPanel.transform.Find("XPanel").GetComponentInChildren <Slider>(); InputField I_Xscaler = ScalerPanel.transform.Find("XPanel").GetComponentInChildren <InputField>(); Slider S_Yscaler = ScalerPanel.transform.Find("YPanel").GetComponentInChildren <Slider>(); InputField I_Yscaler = ScalerPanel.transform.Find("YPanel").GetComponentInChildren <InputField>(); Slider S_Zscaler = ScalerPanel.transform.Find("ZPanel").GetComponentInChildren <Slider>(); InputField I_Zscaler = ScalerPanel.transform.Find("ZPanel").GetComponentInChildren <InputField>(); Button B_up = TranslatePanel.Find("UpButton").GetComponent <Button>(); Button B_down = TranslatePanel.Find("DownButton").GetComponent <Button>(); Button B_mid = TranslatePanel.Find("MidButton").GetComponent <Button>(); Button B_right = TranslatePanel.Find("RightButton").GetComponent <Button>(); Button B_left = TranslatePanel.Find("LeftButton").GetComponent <Button>(); S_rotate.onValueChanged.AddListener((endvalue) => { OnRotateSliderChange(endvalue); I_rotate.text = endvalue.ToString(); }); I_rotate.onValueChanged.AddListener((str) => { try { float a = float.Parse(str); S_rotate.value = a; } catch (System.Exception) { I_rotate.text = S_rotate.value.ToString(); throw; } }); S_XYZscaler.onValueChanged.AddListener((endvalue) => { OnScalerSliderChange(ModelTranslate_E.Scaler, endvalue); I_XYZscaler.text = endvalue.ToString(); }); I_XYZscaler.onValueChanged.AddListener((str) => { try { float a = float.Parse(str); S_XYZscaler.value = a; } catch (System.Exception) { I_XYZscaler.text = S_XYZscaler.value.ToString(); throw; } }); S_Xscaler.onValueChanged.AddListener((endvalue) => { OnScalerSliderChange(ModelTranslate_E.ScalerX, endvalue); I_Xscaler.text = endvalue.ToString(); }); I_Xscaler.onValueChanged.AddListener((str) => { try { float a = float.Parse(str); S_Xscaler.value = a; } catch (System.Exception) { I_Xscaler.text = S_Xscaler.value.ToString(); throw; } }); S_Yscaler.onValueChanged.AddListener((endvalue) => { OnScalerSliderChange(ModelTranslate_E.ScalerY, endvalue); I_Yscaler.text = endvalue.ToString(); }); I_Yscaler.onValueChanged.AddListener((str) => { try { float a = float.Parse(str); S_Yscaler.value = a; } catch (System.Exception) { I_Yscaler.text = S_Yscaler.value.ToString(); throw; } }); S_Zscaler.onValueChanged.AddListener((endvalue) => { OnScalerSliderChange(ModelTranslate_E.ScalerZ, endvalue); I_Zscaler.text = endvalue.ToString(); }); I_Zscaler.onValueChanged.AddListener((str) => { try { float a = float.Parse(str); S_Zscaler.value = a; } catch (System.Exception) { I_Zscaler.text = S_Zscaler.value.ToString(); throw; } }); B_up.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Up); }); B_down.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Down); }); B_right.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Right); }); B_left.onClick.AddListener(() => { OnTranslateChange(ModelTranslate_E.Left); }); firstchoise = Rotate; ChoisePanel(firstchoise); }
/// <summary> /// 根据发送来的消息回调刷新 /// </summary> /// <param name="obj"></param> public override void HandlerEvent(QMsg obj) { ModelMsg mm = obj as ModelMsg; //主模型过程控制 Model_E modelx = mm.modelevent; //modletranslate方式控制 ModelTranslate_E mte = mm.translateevent; //传来的数据 float value = mm.Changdir; //模型状态使用 switch (modelx) { case Model_E.LoadModel: LoadModel(mm); break; case Model_E.Hidden: Hidden(); break; case Model_E.Display: Display(); break; case Model_E.SetCamera: selfcamera = mm.selfcamera; break; case Model_E.translate: case Model_E.Rotate: case Model_E.Scaler: modelcontrollmode = modelx; break; default: break; } //调整(位移旋转缩放)使用 tranlatmode = mte; switch (mte) { case ModelTranslate_E.Up: case ModelTranslate_E.Down: case ModelTranslate_E.Left: case ModelTranslate_E.Right: TranslateCallback(mte); break; case ModelTranslate_E.Scaler: case ModelTranslate_E.ScalerX: case ModelTranslate_E.ScalerY: case ModelTranslate_E.ScalerZ: ScalerCallback(mte, value); break; case ModelTranslate_E.Rotate: RotateCallback(value); break; default: break; } //pointer使用 }
public static string ToYAMLString(ModelMsg msg) { return(msg.ToYAMLString()); }
/// <summary> /// 加载模型 /// </summary> /// <param name="stlpath"></param> protected abstract void LoadModel(ModelMsg obj);