Esempio n. 1
0
 public void GetInMjAction(Vector3 moveTo, DVoidString callBack)
 {
     if (gameObject.activeSelf)
     {
         StartCoroutine(PickUp(moveTo, callBack));
     }
 }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }