public void GetInMjAction(Vector3 moveTo, DVoidString callBack) { if (gameObject.activeSelf) { StartCoroutine(PickUp(moveTo, callBack)); } }
private IEnumerator PutDown(Vector3 moveTo, DVoidString callBack) { float val = 0; float bTime = Time.time; var fpos = transform.localPosition; var tpos = new Vector3(fpos.x, moveTo.y, fpos.z); var fqua = Model.transform.localRotation; var tquat = Quaternion.Euler(0, 0, 0); while (val < PickUpTime) { val = Time.time - bTime; var smoothval = val / PickUpTime; transform.localPosition = Vector3.Lerp(fpos, tpos, smoothval); Model.transform.localRotation = Quaternion.Slerp(fqua, tquat, smoothval); yield return(2); } callBack("PutDownFinish"); }
private IEnumerator MoveTo(Vector3 moveTo, DVoidString callBack) { var val = 0.0f; var bTime = Time.time; var fpos = transform.localPosition; var tpos = new Vector3(moveTo.x, fpos.y, fpos.z); var time = 0.3f;//Vector3.Distance(fpos, tpos) / MoveToSpeed; while (val < time) { val = Time.time - bTime; float smoothval = val / time; transform.localPosition = Vector3.Lerp(fpos, tpos, smoothval); yield return(2); } if (callBack != null) { callBack("MoveFinish"); } yield return(new WaitForSeconds(0.15f)); yield return(PutDown(moveTo, callBack)); }
private IEnumerator PickUp(Vector3 moveTo, DVoidString callBack) { var val = 0.0f; var bTime = Time.time; var fpos = transform.localPosition; var tpos = fpos + _pickUpPos; var fqua = Model.transform.localRotation; var tquat = Quaternion.Euler(_pickUpRotation); while (val < PickUpTime) { val = Time.time - bTime; var smoothval = val / PickUpTime; transform.localPosition = Vector3.Lerp(fpos, tpos, smoothval); Model.transform.localRotation = Quaternion.Slerp(fqua, tquat, smoothval); yield return(2); } yield return(new WaitForSeconds(0.15f)); yield return(MoveTo(moveTo, callBack)); }