private void Instance_SetPickup(Pickup args) { switch (args) { case Pickup.PickupMesh: isUsePackUp = true; pickmode = Enums.PickMode.cell; FrameEnable(); break; case Pickup.PickupPoint: isUsePackUp = true; pickmode = Enums.PickMode.Point; FrameEnable(); break; default: break; } }
private void Awake() { GlobalVariableBackground.Instance.conManager = this; senceModel = GameObject.Find("SenceModel"); line = GlobalVariableBackground.Instance.MaterialLine; selectLine = GlobalVariableBackground.Instance.MaterialSelectLine; pickUpObj = new Others.PackUpObject(); pickClick = new Others.PackUpObject(); //pointPickObj = GameObject.CreatePrimitive(PrimitiveType.Cube); //pointPickObj.GetComponent<MeshRenderer>().enabled = false; //Destroy(pointPickObj.GetComponent<BoxCollider>()); //pointPickObj.GetComponent<MeshFilter>().mesh = GlobalVariableBackground.Instance.miniCubeMesh; //pointPickObj.transform.localScale = pointPickObj.transform.localScale * 1.01f; pickmode = Enums.PickMode.Point; colorPointArrayTemp = new Color[24]; for (int i = 0; i < 24; i++) { //基佬紫 colorPointArrayTemp[i] = Color.HSVToRGB(304 / 360f, 1f, 1f); } pointTriTemp = GlobalVariableBackground.Instance.miniCubeMesh.triangles; }
// Update is called once per frame void Update() { //下一帧 if (Input.GetKeyDown(KeyCode.RightArrow)) { GlobalVariableBackground.Instance.playRun = false; NextFrame(); } //上一帧 if (Input.GetKeyDown(KeyCode.LeftArrow)) { GlobalVariableBackground.Instance.playRun = false; LastFrame(); } //自动播放 if (Input.GetKeyDown(KeyCode.KeypadEnter)) { GlobalVariableBackground.Instance.playRun = true; StartCoroutine("Run", timeFloat); } //初始化帧 if (Input.GetKeyDown(KeyCode.Backspace)) { FrameInit(); } //显示点模式 if (Input.GetKeyDown(KeyCode.Keypad1)) { ChangePointMode(); } //显示网格模式 if (Input.GetKeyDown(KeyCode.Keypad2)) { ChangeCellMode(); } //显示线模式 if (Input.GetKeyDown(KeyCode.Keypad3)) { ChangeLineMode(); } //显示网格+线模式 if (Input.GetKeyDown(KeyCode.Keypad4)) { ChangeLineAndCellMode(); } //切割模型 if (Input.GetKeyDown(KeyCode.C)) { CutModel(); } ////垃圾回收 测试使用 //if (Input.GetKeyDown(KeyCode.G)) //{ // GC.Collect(); // GlobalVariableBackground.Instance.conManager.WriteLog("GC.Collect()"); //} //网格线拾取 if (Input.GetKeyDown(KeyCode.P)) { isUsePackUp = true; pickmode = Enums.PickMode.cell; FrameEnable(); GlobalVariableBackground.Instance.conManager.WriteLog("cell isUsePackUp is " + isUsePackUp); } //点拾取 if (Input.GetKeyDown(KeyCode.O)) { isUsePackUp = true; pickmode = Enums.PickMode.Point; FrameEnable(); GlobalVariableBackground.Instance.conManager.WriteLog("point isUsePackUp is " + isUsePackUp); } //关闭拾取 if (Input.GetKeyDown(KeyCode.U)) { isUsePackUp = false; } if (Input.GetKeyDown(KeyCode.A)) { if (ToArrowMode != null) { ToArrowMode(); } } //拾取实时 效果显示 if (isUsePackUp) { PickUpObject(pickUpObj); if (pickClick.isMeshHave) { Graphics.DrawMesh(pickClick.mesh, senceModel.transform.localToWorldMatrix, selectLine, 0); } if (pickUpObj.isMeshHave) { Graphics.DrawMesh(pickUpObj.mesh, senceModel.transform.localToWorldMatrix, line, 0); } } //确认拾取 if (Input.GetMouseButtonDown(0)) { PickUpClick(); } //根据Z轴对称 if (Input.GetKeyDown(KeyCode.Z)) { if (ToSymmetric != null) { ToSymmetric(Enums.SymmetricMode.Z); } } if (Input.GetKeyDown(KeyCode.W)) { if (ToSmooth != null) { ToSmooth(); } } }