コード例 #1
0
 // add to queue
 public void queueMoveTo(LocalTransformStruct t)
 {
     if (!locked && !removedFromScene)
     {
         transformQueue.Enqueue(t);
     }
 }
コード例 #2
0
    private void Update()
    {
        // first check if there is anything to do
        if (currentTransform == null && transformQueue.Count == 0 || removedFromScene || locked)
        {
            return;
        }

        // if close to transform or currentTransform is null then move to next transform
        if (currentTransform == null || Vector3.Distance(transform.localPosition, currentTransform.localPosition) < closeEnough && Vector3.Distance(transform.localPosition, currentTransform.localPosition) < closeEnough)
        {
            if (transformQueue.Count > 0)
            {
                currentTransform = transformQueue.Dequeue();
            }
            else
            {
                currentTransform = null;
                return;
            }
        }
        // move to current transform
        transform.localPosition = Vector3.Lerp(transform.localPosition, currentTransform.localPosition, speed * Time.deltaTime);
        transform.localScale    = Vector3.Lerp(transform.localScale, currentTransform.localScale, speed * Time.deltaTime);
    }
コード例 #3
0
 // clear and add
 public void moveToImmediate(LocalTransformStruct t)
 {
     if (!locked && !removedFromScene)
     {
         clearQueue();
         queueMoveTo(t);
     }
 }
コード例 #4
0
 public TransformCommand(LocalTransformManager transformManager, LocalTransformStruct targetTransform)
 {
     this.transformManager = transformManager;
     this.targetTransform  = targetTransform;
 }
コード例 #5
0
 public void setTransform(LocalTransformStruct tStruct)
 {
     clearQueue();
     transform.localPosition = tStruct.localPosition;
     transform.localScale    = tStruct.localScale;
 }
コード例 #6
0
 public void moveToInformativeAnimation(LocalTransformStruct t)
 {
     InformativeAnimationsQueue.Instance.AddAnimation(new TransformCommand(this, t));
 }
コード例 #7
0
 // clear queue
 public void clearQueue()
 {
     currentTransform = null;
     transformQueue.Clear();
 }