private void SetTrans() { leftRela = Tran2.Relative(gun, leftHand); leftForearmRela = Tran2.Relative(leftHand, leftForearm); rightRela = Tran2.Relative(gun, rightHand); rightForearmRela = Tran2.Relative(rightHand, rightForearm); Debug.Log("设置双手的相对变换。"); }
private void btnMenu_Click(object sender, EventArgs e) { if (slideMenu.Width == 45) { slideMenu.Visible = false; slideMenu.Width = 175; tabControl1.Location = new System.Drawing.Point(175, 47); //listViewRooms.Size = new System.Drawing.Size(formWidth() - 339, formHeight() - 50); tabControl1.Size = new System.Drawing.Size(formWidth() - 175, formHeight() - 50); Tran1.ShowSync(slideMenu); } else { slideMenu.Visible = false; slideMenu.Width = 45; tabControl1.Location = new System.Drawing.Point(45, 47); //listViewRooms.Size = new System.Drawing.Size(formWidth() - 339 + 175 - 45,formHeight()-50); tabControl1.Size = new System.Drawing.Size(formWidth() - 45, formHeight() - 50); Tran2.ShowSync(slideMenu); } }
private void LateUpdate() { if (toggleLockTrans.isOn) { Tran2 orela, ot, ofa; ////// leftHand.SetTran2(Tran2.Absolute(gun, leftRela)); //根据手枪设置手的绝对位置 ot = leftHand.Tran2(); orela = Tran2.Absolute(leftHand, leftForearmRela); // 预先记录相对位置的绝对值,理由同上。 if (lerp) { UpdateBone(leftForearm); // 根据曲线设置 前臂 的本地位置 } ofa = leftForearm.Tran2(); // 记录 前臂 的本地变换绝对值 leftForearm.SetTran2(Tran2.Lerp(ofa, orela, lerp ? weight : 1)); // 与相对变换插值 leftHand.SetTran2(ot); // 还原手的绝对位置 ////// rightHand.SetTran2(Tran2.Absolute(gun, rightRela)); ot = rightHand.Tran2(); orela = Tran2.Absolute(rightHand, rightForearmRela); if (lerp) { UpdateBone(rightForearm); } ofa = rightForearm.Tran2(); rightForearm.SetTran2(Tran2.Lerp(ofa, orela, lerp ? weight : 1)); rightHand.SetTran2(ot); if (lookAt) { SetLookAtChain(leftUpperarm, leftForearm, leftHand); SetLookAtChain(rightUpperarm, rightForearm, rightHand); //SetLookAtChain(rightForearm, rightHand); } } }