//GameObject Clone = null; internal void CalculateThrowMove(Queue <Hi5_Position_Record> records, Transform handPalm, Hi5_Glove_Interaction_Hand hand) { mIsFlyMovePause = false; int index = 0; int weightPointCount = 0; float timeCount = 0.0f; Vector3 distanceVector = Vector3.zero; foreach (Hi5_Position_Record item in records) { if (Hi5_Interaction_Const.RecordPositionWeight.Length > index) { int weight = Hi5_Interaction_Const.RecordPositionWeight[index]; weightPointCount += weight; timeCount += item.mIntervalTime * weight; distanceVector += item.mMoveVector * weight; } index++; } if (index <= 1) { // mMoveData = new ObjectMoveData(); // mMoveData.mDirection = new Vector3 (0.0f, 0.08598139f, 0.0f); // mMoveData.y = mMoveData.mDirection.y; // mMoveData.ySpeed = mMoveData.mDirection.y; //Debug.Log("index <= 1"); Vector3 temp = hand.MoveAnchor.position - hand.mPalm.transform.position; temp.Normalize(); mMoveData = new ObjectMoveData(); mMoveData.mDirection = temp * 0.3998139f; mMoveData.y = mMoveData.mDirection.y; mMoveData.ySpeed = mMoveData.mDirection.y; // mMoveData = new ObjectMoveData(); // mMoveData.mDirection = distanceVector / timeCount* Hi5_Interaction_Const.ThrowSpeed; // mMoveData.y = mMoveData.mDirection.y; // mMoveData.ySpeed = mMoveData.mDirection.y; Hi5_Interaction_Const.WriteItemMoveXml(records, mMoveData); } else { //Debug.Log("index > 1"); mMoveData = new ObjectMoveData(); mMoveData.mDirection = distanceVector / timeCount * Hi5_Interaction_Const.ThrowSpeed; mMoveData.y = mMoveData.mDirection.y; mMoveData.ySpeed = mMoveData.mDirection.y; Hi5_Interaction_Const.WriteItemMoveXml(records, mMoveData); } //if (Hi5_Interaction_Const.TestPhycis) //if (Hi5_Interaction_Const.TestModifyConstraints) { //mItem.SetIsKinematic (false); //mItem.SetUseGravity (true); //mItem.CleanLock (); if (mItem.GetComponent <Hi5_Object_Property>() != null && mItem.GetComponent <Hi5_Object_Property>().ObjectProperty.AirMoveProperty != null) { mItem.SetIsKinematic(false); mItem.SetUseGravity(true); mItem.GetComponent <Rigidbody>().constraints = RigidbodyConstraints.None; mItem.GetComponent <Hi5_Object_Property>().SetRotation(mItem.GetComponent <Hi5_Object_Property>().ObjectProperty.AirMoveProperty.ConstraintsFreezeRotation, mItem.GetComponent <Hi5_Object_Property>().ObjectProperty.AirMoveProperty.ConstraintsFreezeRotation, mItem.GetComponent <Hi5_Object_Property>().ObjectProperty.AirMoveProperty.ConstraintsFreezeRotation); } else { mItem.SetIsKinematic(false); mItem.SetUseGravity(true); mItem.CleanLock(); } } mMoveType = Hi5ObjectMoveType.EThrowMove; protectedTransform = handPalm; IsProtectFly = true; }
internal void CacullateThrowMove(Queue <Hi5_Position_Record> records, Transform handPalm, Hi5_Glove_Interaction_Hand hand) { mIsFlyMovePause = false; int index = 0; int weightPointCount = 0; float timeCount = 0.0f; Vector3 distanceVector = Vector3.zero; foreach (Hi5_Position_Record item in records) { if (Hi5_Interaction_Const.RecordPositionWeight.Length > index) { int weight = Hi5_Interaction_Const.RecordPositionWeight[index]; weightPointCount += weight; timeCount += item.mIntervalTime * weight; distanceVector += item.mMoveVector * weight; } index++; } if (index <= 1) { // mMoveData = new ObjectMoveData(); // mMoveData.mDirection = new Vector3 (0.0f, 0.08598139f, 0.0f); // mMoveData.y = mMoveData.mDirection.y; // mMoveData.ySpeed = mMoveData.mDirection.y; Vector3 temp = hand.MoveAnchor.position - hand.mPalm.transform.position; temp.Normalize(); mMoveData = new ObjectMoveData(); mMoveData.mDirection = temp * 0.3998139f; mMoveData.y = mMoveData.mDirection.y; mMoveData.ySpeed = mMoveData.mDirection.y; // mMoveData = new ObjectMoveData(); // mMoveData.mDirection = distanceVector / timeCount* Hi5_Interaction_Const.ThrowSpeed; // mMoveData.y = mMoveData.mDirection.y; // mMoveData.ySpeed = mMoveData.mDirection.y; Hi5_Interaction_Const.WriteItemMoveXml(records, mMoveData); } else { mMoveData = new ObjectMoveData(); mMoveData.mDirection = distanceVector / timeCount * Hi5_Interaction_Const.ThrowSpeed; mMoveData.y = mMoveData.mDirection.y; mMoveData.ySpeed = mMoveData.mDirection.y; Hi5_Interaction_Const.WriteItemMoveXml(records, mMoveData); } //if (Hi5_Interaction_Const.TestFlyMoveNoUsedGravity) { mItem.SetIsKinematic(true); mItem.SetUseGravity(false); } //else //{ // mItem.SetIsKinematic(false); // mItem.SetUseGravity(true); //} mMoveType = Hi5ObjectMoveType.EThrowMove; protecedTransform = handPalm; IsProtectFly = true; }