Пример #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="time">时间</param>
 /// <param name="type">指令类型 旋转 移动</param>
 /// <param name="value">指令对应值</param>
 public RecordTransform(float time, RecordCommond_Type type, Vector3 value)
 {
     this.time = time;
     this.type = (short)type;
     this.x    = value.x;
     this.y    = value.y;
     this.z    = value.z;
 }
Пример #2
0
    IEnumerator PlayNow()
    {
        while (true)
        {
            if (record.Count == 0)
            {
                break;
            }

            //while循环 用户同一时间输入移动和旋转
            while (Mathf.Abs(Time.time - record.Peek().time) < offSet)
            {
                RecordTransform    rt = record.Dequeue();
                RecordCommond_Type r  = rt.GetRecordCommondType();

                switch (r)
                {
                case RecordCommond_Type.Position:
                    this.transform.position = rt.GetValue();
                    break;

                case RecordCommond_Type.Rotation:
                    this.transform.eulerAngles = rt.GetValue();
                    break;

                default:
                    break;
                }

                if (record.Count == 0)
                {
                    break;
                }
            }

            yield return(0);
        }
    }
Пример #3
0
 /// <summary>
 /// 记录当前帧
 /// </summary>
 /// <param name="type">指令类型</param>
 /// <param name="value">值</param>
 public void RecordCurrentFrame(RecordCommond_Type type, Vector3 value)
 {
     record.Enqueue(new RecordTransform(Time.time, type, value));
 }