コード例 #1
0
 public void ChangeWeaponTrail(DragDes drag)
 {
     for (int i = 0; i < trail.Count; i++)
     {
         trail[i].Emit       = drag == null ? false : true;
         trail[i]._colors[0] = drag == null ? Color.white : new Color(drag.Color.x / 255.0f, drag.Color.y / 255.0f, drag.Color.z / 255.0f, 0.5f);
         trail[i]._lifeTime  = drag == null ? 0 : drag.Time;
     }
 }
コード例 #2
0
 public void ChangeWeaponTrail(DragDes drag)
 {
     for (int i = 0; i < trail.Count; i++)
     {
         trail[i].Emit = drag == null ? false : true;
         if (drag != null)
         {
             dragC.r = drag.Color.x / 255.0f;
             dragC.g = drag.Color.y / 255.0f;
             dragC.b = drag.Color.z / 255.0f;
             dragC.a = 0.5f;
         }
         trail[i]._colors[0] = drag == null ? Color.white : dragC;
         trail[i]._lifeTime  = drag == null ? 0 : drag.Time;
     }
 }
コード例 #3
0
 void ReadPose()
 {
     if (PosFile[UnitId] != null)
     {
         Pose      current = null;
         PosAction curAct  = null;
         AttackDes att     = null;
         DragDes   dra     = null;
         NextPose  nex     = null;
         int       left    = 0;
         int       leftAct = 0;
         int       leftAtt = 0;
         int       leftDra = 0;
         int       leftNex = 0;
         string    text    = System.Text.Encoding.ASCII.GetString(PosFile[UnitId].bytes);
         string[]  pos     = text.Split(new char[] { '\r', '\n' }, System.StringSplitOptions.RemoveEmptyEntries);
         for (int i = 0; i < pos.Length; i++)
         {
             if (current != null && current.Idx == 573)
             {
                 //Debug.Log("get");
             }
             string   line       = pos[i];
             string[] lineObject = line.Split(new char[] { ' ' }, System.StringSplitOptions.RemoveEmptyEntries);
             if (lineObject.Length == 0)
             {
                 //Debug.Log("line i:" + i);
                 //空行跳过
                 continue;
             }
             else if (lineObject[0].StartsWith("#"))
             {
                 continue;
             }
             else
             if (lineObject[0] == "Pose" && left == 0 && leftAct == 0)
             {
                 Pose insert = new Pose();
                 ActionList[UnitId].Add(insert);
                 int idx = int.Parse(lineObject[1]);
                 insert.Idx = idx;
                 current    = insert;
             }
             else if (lineObject[0] == "{")
             {
                 if (nex != null)
                 {
                     leftNex++;
                 }
                 else
                 if (dra != null)
                 {
                     leftDra++;
                 }
                 else
                 if (att != null)
                 {
                     leftAtt++;
                 }
                 else
                 if (curAct != null)
                 {
                     leftAct++;
                 }
                 else
                 {
                     left++;
                 }
             }
             else if (lineObject[0] == "}")
             {
                 if (nex != null)
                 {
                     leftNex--;
                     if (leftNex == 0)
                     {
                         nex = null;
                     }
                 }
                 else
                 if (dra != null)
                 {
                     leftDra--;
                     if (leftDra == 0)
                     {
                         dra = null;
                     }
                 }
                 else
                 if (att != null)
                 {
                     leftAtt--;
                     if (leftAtt == 0)
                     {
                         att = null;
                     }
                 }
                 else
                 if (curAct != null)
                 {
                     leftAct--;
                     if (leftAct == 0)
                     {
                         curAct = null;
                     }
                 }
                 else
                 {
                     left--;
                     if (left == 0)
                     {
                         current = null;
                     }
                 }
             }
             else if (lineObject[0] == "link" || lineObject[0] == "Link" || lineObject[0] == "Link\t" || lineObject[0] == "link\t")
             {
                 current.Link = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "source" || lineObject[0] == "Source")
             {
                 current.SourceIdx = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "Start" || lineObject[0] == "start")
             {
                 if (nex != null)
                 {
                     nex.Start = int.Parse(lineObject[1]);
                 }
                 else
                 if (dra != null)
                 {
                     dra.Start = int.Parse(lineObject[1]);
                 }
                 else
                 if (att != null)
                 {
                     att.Start = int.Parse(lineObject[1]);
                 }
                 else
                 if (curAct != null)
                 {
                     curAct.Start = int.Parse(lineObject[1]);
                 }
                 else
                 {
                     current.Start = int.Parse(lineObject[1]);
                 }
             }
             else if (lineObject[0] == "End" || lineObject[0] == "end")
             {
                 if (nex != null)
                 {
                     nex.End = int.Parse(lineObject[1]);
                 }
                 else
                 if (dra != null)
                 {
                     dra.End = int.Parse(lineObject[1]);
                 }
                 else
                 if (att != null)
                 {
                     att.End = int.Parse(lineObject[1]);
                 }
                 else
                 if (curAct != null)
                 {
                     curAct.End = int.Parse(lineObject[1]);
                 }
                 else
                 {
                     current.End = int.Parse(lineObject[1]);
                 }
             }
             else if (lineObject[0] == "Speed" || lineObject[0] == "speed")
             {
                 if (curAct != null)
                 {
                     curAct.Speed = float.Parse(lineObject[1]);
                 }
             }
             else if (lineObject[0] == "LoopStart")
             {
                 current.LoopStart = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "LoopEnd")
             {
                 current.LoopEnd = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "EffectType")
             {
                 current.EffectType = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "EffectID")
             {
                 current.EffectID = lineObject[1];
             }
             else if (lineObject[0] == "Blend")
             {
                 PosAction act = new PosAction();
                 act.Type = "Blend";
                 current.ActionList.Add(act);
                 curAct = act;
             }
             else if (lineObject[0] == "Action")
             {
                 PosAction act = new PosAction();
                 act.Type = "Action";
                 current.ActionList.Add(act);
                 curAct = act;
             }
             else if (lineObject[0] == "Attack")
             {
                 att         = new AttackDes();
                 att.PoseIdx = current.Idx;
                 current.Attack.Add(att);
             }
             else if (lineObject[0] == "bone")
             {
                 //重新分割,=号分割,右边的,号分割
                 lineObject = line.Split(new char[] { '=' }, System.StringSplitOptions.RemoveEmptyEntries);
                 string bones = lineObject[1];
                 while (bones.EndsWith(","))
                 {
                     i++;
                     lineObject    = new string[1];
                     lineObject[0] = pos[i];
                     bones        += lineObject[0];
                 }
                 //bones = bones.Replace(' ', '_');
                 string[] bonesstr = bones.Split(new char[] { ',' });
                 for (int j = 0; j < bonesstr.Length; j++)
                 {
                     string b = bonesstr[j].TrimStart(new char[] { ' ', '\"' });
                     b = b.TrimEnd(new char[] { '\"', ' ' });
                     b = b.Replace(' ', '_');
                     att.bones.Add(b);
                 }
             }
             else if (lineObject[0] == "AttackType")
             {
                 att._AttackType = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "CheckFriend")
             {
                 att.CheckFriend = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "DefenseValue")
             {
                 att.DefenseValue = float.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "DefenseMove")
             {
                 att.DefenseMove = float.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "TargetValue")
             {
                 att.TargetValue = float.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "TargetMove")
             {
                 att.TargetMove = float.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "TargetPose")
             {
                 att.TargetPose = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "TargetPoseFront")
             {
                 att.TargetPoseFront = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "TargetPoseBack")
             {
                 att.TargetPoseBack = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "TargetPoseLeft")
             {
                 att.TargetPoseLeft = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "TargetPoseRight")
             {
                 att.TargetPoseRight = int.Parse(lineObject[1]);
             }
             else if (lineObject[0] == "Drag")
             {
                 dra          = new DragDes();
                 current.Drag = dra;
             }
             else if (lineObject[0] == "Time")
             {
                 if (nex != null)
                 {
                     nex.Time = float.Parse(lineObject[1]);
                 }
                 else
                 {
                     dra.Time = float.Parse(lineObject[1]);
                 }
             }
             else if (lineObject[0] == "Color")
             {
                 string[] rgb = lineObject[1].Split(new char[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);
                 dra.Color.x = int.Parse(rgb[0]);
                 dra.Color.y = int.Parse(rgb[1]);
                 dra.Color.z = int.Parse(rgb[2]);
             }
             else if (lineObject[0] == "NextPose")
             {
                 current.Next = new NextPose();
                 nex          = current.Next;
             }
             else if (lineObject[0] == "{}")
             {
                 current = null;
                 continue;
             }
             else
             {
                 Debug.Log("line :" + i + " can t understand:" + pos[i]);
                 break;
             }
         }
     }
 }