Пример #1
0
        public static UnitInfo CreateUnitInfo(Unit unit)
        {
            UnitInfo         unitInfo = new UnitInfo();
            NumericComponent nc       = unit.GetComponent <NumericComponent>();

            unitInfo.UnitId   = unit.Id;
            unitInfo.ConfigId = unit.ConfigId;
            unitInfo.Type     = (int)unit.Type;
            Vector3 position = unit.Position;

            unitInfo.X = position.x;
            unitInfo.Y = position.y;
            unitInfo.Z = position.z;
            Vector3 forward = unit.Forward;

            unitInfo.ForwardX = forward.x;
            unitInfo.ForwardY = forward.y;
            unitInfo.ForwardZ = forward.z;

            MoveComponent moveComponent = unit.GetComponent <MoveComponent>();

            if (moveComponent != null)
            {
                if (!moveComponent.IsArrived())
                {
                    unitInfo.MoveInfo = new MoveInfo();
                    for (int i = moveComponent.N; i < moveComponent.Targets.Count; ++i)
                    {
                        Vector3 pos = moveComponent.Targets[i];
                        unitInfo.MoveInfo.X.Add(pos.x);
                        unitInfo.MoveInfo.Y.Add(pos.y);
                        unitInfo.MoveInfo.Z.Add(pos.z);
                    }
                }
            }

            foreach ((int key, long value) in nc.NumericDic)
            {
                unitInfo.Ks.Add(key);
                unitInfo.Vs.Add(value);
            }

            return(unitInfo);
        }