Esempio n. 1
0
        public static void Run(string input, int expectedNumberOfWarnings, int expectedNumberOfErrors)
        {
            var AST = SimpleBuilder.Build(input);

            BiPaGe.SemanticAnalysis.SemanticAnalyzer analyzer = new BiPaGe.SemanticAnalysis.SemanticAnalyzer();
            var events = analyzer.CheckSemantics(AST);

            int numberOfWarnings = 0;
            int numberOfErrors   = 0;

            foreach (var e in events)
            {
                if (e is Warning)
                {
                    numberOfWarnings++;
                }
                else if (e is Error)
                {
                    numberOfErrors++;
                }
            }

            Assert.AreEqual(expectedNumberOfWarnings, numberOfWarnings);
            Assert.AreEqual(expectedNumberOfErrors, numberOfErrors);
        }
Esempio n. 2
0
 public SimpleOrder(SimpleBuilder builder)
 {
     CustomerName            = builder.CustomerName;
     StoreName               = builder.StoreName;
     CollectionType          = builder.CollectionType;
     CustomerTelephoneNumber = builder.CustomerTelephoneNumber;
 }
Esempio n. 3
0
        public void SingleLevelMultipleValue()
        {
            var input    = @"
Object1
{
    field1 : i32;
    field2 : SomeOtherObject(field1 = 5, field2 = 1.23, field3 = ""Some string"", field4 = {1,2,3,4,5}, field5 = false);
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 32), null, null));
            object1.Fields.Add(("field2", new Identifier(null, "SomeOtherObject"), null,
                                new BiPaGe.AST.Constants.ObjectConstant(null,
                                                                        new List <ObjectField> {
                new ObjectField("field1", new BiPaGe.AST.Literals.Integer(null, "5")),
                new ObjectField("field2", new BiPaGe.AST.Literals.Float(null, "1.23")),
                new ObjectField("field3", new BiPaGe.AST.Literals.StringLiteral(null, "Some string")),
                new ObjectField("field4", new LiteralCollection(null, new List <BiPaGe.AST.Literals.Literal> {
                    new BiPaGe.AST.Literals.Integer(null, "1"),
                    new BiPaGe.AST.Literals.Integer(null, "2"),
                    new BiPaGe.AST.Literals.Integer(null, "3"),
                    new BiPaGe.AST.Literals.Integer(null, "4"),
                    new BiPaGe.AST.Literals.Integer(null, "5")
                })),
                new ObjectField("field5", new BiPaGe.AST.Literals.Boolean(null, "false"))
            })));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 4
0
        public void CollectionSizedByExpression()
        {
            var input    = @"
Object1
{
    size : int32;
    field2 : u32[(size - this) / 4];
}";
            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("size", new Signed(null, 32), null, null));
            var field2_size = new Division(
                null,
                new Subtraction(
                    null,
                    new FieldIdentifier(null, "size"),
                    new This(null)
                    ),
                new BiPaGe.AST.Literals.Integer(null, "4"));

            object1.Fields.Add(("field2", new Unsigned(null, 32), field2_size, null));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 5
0
        public void Signed()
        {
            var input    = @"
SomeEnumeration : i16
{
    value1 = -2,
    value2 = -1,
    value3 = 0,
    value4 = 1,
    value5 = 2
}
Object1
{
    enum_field : SomeEnumeration;
}";
            var expected = new ProgramBuilder();

            var enum1 = expected.AddEnumeration();

            enum1.Name = "SomeEnumeration";
            enum1.Type = new Signed(null, 16);
            enum1.Enumerators.Add(("value1", -2));
            enum1.Enumerators.Add(("value2", -1));
            enum1.Enumerators.Add(("value3", 0));
            enum1.Enumerators.Add(("value4", 1));
            enum1.Enumerators.Add(("value5", 2));

            var object1 = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("enum_field", new Identifier(null, "SomeEnumeration"), null, null));

            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 6
0
        public void DoubleEmbedded()
        {
            ;
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 16), null, null));
            object1.Fields.Add(("field2", new Unsigned(null, 32), null, null));

            var superembedded = new BiPaGe.AST.FieldTypes.InlineObject(null, new List <BiPaGe.AST.Field> {
                new Field(null, "nestnest1", new Utf8String(null), new BiPaGe.AST.Literals.Integer(null, "64"), null),
                new Field(null, "nestnest2", new Identifier(null, "SomeOtherObject"), null, null),
                new Field(null, "nestnest3", new Unsigned(null, 12), null, null),
            });

            var embedded = new BiPaGe.AST.FieldTypes.InlineObject(null, new List <BiPaGe.AST.Field> {
                new Field(null, "embedded1", new Float(null, 32), null, null),
                new Field(null, "embedded2", new BiPaGe.AST.FieldTypes.Boolean(null), new BiPaGe.AST.Literals.Integer(null, "3"), null),
                new Field(null, "embedded_embedded", superembedded, null, null)
            });

            object1.Fields.Add(("embedded_object", embedded, null, null));
            expected.Validate(SimpleBuilder.Build("Object1{field1:int16;field2:u32;embedded_object:{embedded1:f32;embedded2:bool[3];embedded_embedded:{nestnest1:utf8_string[64];nestnest2:SomeOtherObject;nestnest3:u12;}};}"));
        }
Esempio n. 7
0
        public void SingleEmbedded()
        {
            var input    = @"
Object1
{
    field1 : int16;
    field2 : u32;
    embedded_object : { embedded1 : f32 ; embedded2 : bool[3] ; embedded3 : ascii_string[8]; };
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 16), null, null));
            object1.Fields.Add(("field2", new Unsigned(null, 32), null, null));

            var embedded = new BiPaGe.AST.FieldTypes.InlineObject(null, new List <BiPaGe.AST.Field> {
                new Field(null, "embedded1", new Float(null, 32), null, null),
                new Field(null, "embedded2", new BiPaGe.AST.FieldTypes.Boolean(null), new BiPaGe.AST.Literals.Integer(null, "3"), null),
                new Field(null, "embedded3", new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "8"), null),
            });

            object1.Fields.Add(("embedded_object", embedded, null, null));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 8
0
        public void CollectionSizedByExpression2()
        {
            var input = @"
Object1
{
    size : int32;
    size2 : int16;
    collection : bool[size + size2 - 10 * 5];
}";

            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("size", new Signed(null, 32), null, null));
            object1.Fields.Add(("size2", new Signed(null, 16), null, null));
            var field3_size = new Subtraction(
                null,
                new Addition(
                    null,
                    new FieldIdentifier(null, "size"),
                    new FieldIdentifier(null, "size2")
                    ),
                new Multiplication(
                    null,
                    new BiPaGe.AST.Literals.Integer(null, "10"),
                    new BiPaGe.AST.Literals.Integer(null, "5")
                    ));

            object1.Fields.Add(("collection", new BiPaGe.AST.FieldTypes.Boolean(null), field3_size, null));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 9
0
        public void Standard()
        {
            var input    = @"
Object1
{
    enum_field : u8
    {
        value1 = 1,
        value2 = 2,
        value3 = 0
    };
}";
            var expected = new ProgramBuilder();

            var inline_enum = new BiPaGe.AST.FieldTypes.InlineEnumeration(null, new Unsigned(null, 8),
                                                                          new List <BiPaGe.AST.Enumerator>
            {
                new BiPaGe.AST.Enumerator(null, "value1", "1"),
                new BiPaGe.AST.Enumerator(null, "value2", "2"),
                new BiPaGe.AST.Enumerator(null, "value3", "0")
            });

            var object1 = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("enum_field", inline_enum, null, null));

            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 10
0
    private static void Main()
    {
        SimpleBuilder.Create().Id(1).Name("Riku").Age(17).Build().Show();
        SimpleBuilder.Create().Id(2).Build().Show();                            // (no name, no id)
        SimpleBuilder.Create().Id(3).Name("Kimi").Name("Maria").Build().Show(); // (no id, two names)

        Builder.Create().Id(4).Name("Aki").Build().Show();
        Builder.Create().Name("Anna").Id(5).Build().Show();
        Builder.Create().Name("Mika").Age(24).Id(6).Build().Show();
//      Builder.Create().Id(7).Name("Masa").Name("Jarkko").Build(); // type error. (two names)
//      Builder.Create().Id(8).Build(); // type error. (no name)
    }
Esempio n. 11
0
        public void Basic()
        {
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 16), null, null));
            object1.Fields.Add(("field2", new Unsigned(null, 32), null, null));
            object1.Fields.Add(("field3", new Float(null, 32), null, null));
            object1.Fields.Add(("field4", new Float(null, 64), null, null));
            object1.Fields.Add(("field5", new BiPaGe.AST.FieldTypes.Boolean(null), null, null));
            expected.Validate(SimpleBuilder.Build("Object1{field1:int16;field2:u32;field3:float32;field4:f64;field5:bool;}"));
        }
Esempio n. 12
0
        public void BasicTypes()
        {
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Unsigned(null, 32), null, new BiPaGe.AST.Literals.Integer(null, "500")));
            object1.Fields.Add(("field2", new Signed(null, 16), null, new BiPaGe.AST.Literals.Integer(null, "-5")));
            object1.Fields.Add(("field3", new Float(null, 32), null, new BiPaGe.AST.Literals.Float(null, "123.456")));
            object1.Fields.Add(("field4", new Float(null, 64), null, new BiPaGe.AST.Literals.Float(null, "-3.14")));
            object1.Fields.Add(("field5", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "true")));
            object1.Fields.Add(("field6", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "false")));
            expected.Validate(SimpleBuilder.Build("Object1{field1:uint32=500;field2:int16=-5;field3:float32=123.456;field4:float64=-3.14;field5:bool=true;field6:bool=false;}"));
        }
Esempio n. 13
0
        public void FloatPositive()
        {
            var input    = @"
Object1
{
    field1 : float32 = 123.456;
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Float(null, 32), null, new BiPaGe.AST.Literals.Float(null, "123.456")));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 14
0
        public void Unsigned()
        {
            var input    = @"
Object1
{
    field1 : uint32 = 500;
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Unsigned(null, 32), null, new BiPaGe.AST.Literals.Integer(null, "500")));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 15
0
        public void AsciiString()
        {
            var input    = @"
Object1
{
    field1 : ascii_string[64] = ""This is a string initializer"";
}";
            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "64"), new BiPaGe.AST.Literals.StringLiteral(null, "This is a string initializer")));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 16
0
        public void SignedPositive()
        {
            var input    = @"
Object1
{
    field1 : int16 = 5;
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 16), null, new BiPaGe.AST.Literals.Integer(null, "5")));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 17
0
        public void FloatNegative()
        {
            var input    = @"
Object1
{
    field1 : float64 = -3.14;
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Float(null, 64), null, new BiPaGe.AST.Literals.Float(null, "-3.14")));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 18
0
        public void CollectionSizedByField()
        {
            var input    = @"
Object1
{
    size : int32;
    field2 : ascii_string[size];
}";
            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("size", new Signed(null, 32), null, null));
            object1.Fields.Add(("field2", new AsciiString(null), new BiPaGe.AST.Identifiers.FieldIdentifier(null, "size"), null));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 19
0
        public void Bool()
        {
            var input    = @"
Object1
{
    field1 : bool = true;
    field2 : bool = false;
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "true")));
            object1.Fields.Add(("field2", new BiPaGe.AST.FieldTypes.Boolean(null), null, new BiPaGe.AST.Literals.Boolean(null, "false")));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 20
0
        public void SingleEmbedded()
        {
            var input    = @"
Object1
{
    field1 : i32;
    field2 : SomeOtherObject;
}
";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 32), null, null));
            object1.Fields.Add(("field2", new Identifier(null, "SomeOtherObject"), null, null));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 21
0
        public void ListOfIntegersSizedByExpression2()
        {
            var input = @"
Object1
{
    size : int32;
    size2 : int16;
    collection : i32[size + size2 - 10 * 5] = {1,1,2,3,5,8,13,21,34,55};
}";

            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("size", new Signed(null, 32), null, null));
            object1.Fields.Add(("size2", new Signed(null, 16), null, null));
            var field3_size = new Subtraction(
                null,
                new Addition(
                    null,
                    new FieldIdentifier(null, "size"),
                    new FieldIdentifier(null, "size2")
                    ),
                new Multiplication(
                    null,
                    new BiPaGe.AST.Literals.Integer(null, "10"),
                    new BiPaGe.AST.Literals.Integer(null, "5")
                    ));

            object1.Fields.Add(("collection", new BiPaGe.AST.FieldTypes.Signed(null, 32), field3_size,
                                new LiteralCollection(null,
                                                      new List <BiPaGe.AST.Literals.Literal>()
            {
                new BiPaGe.AST.Literals.Integer(null, "1"),
                new BiPaGe.AST.Literals.Integer(null, "1"),
                new BiPaGe.AST.Literals.Integer(null, "2"),
                new BiPaGe.AST.Literals.Integer(null, "3"),
                new BiPaGe.AST.Literals.Integer(null, "5"),
                new BiPaGe.AST.Literals.Integer(null, "8"),
                new BiPaGe.AST.Literals.Integer(null, "13"),
                new BiPaGe.AST.Literals.Integer(null, "21"),
                new BiPaGe.AST.Literals.Integer(null, "34"),
                new BiPaGe.AST.Literals.Integer(null, "55")
            })));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 22
0
        public void Reserved()
        {
            var input    = @"
Object1
{
    int32[5];
    ascii_string[32];
    utf8_string[255];
    ascii_string[size];
    u32[(size - this) / 4];
    bool[size + size2 - 10 * 5];
}";
            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add((null, new Signed(null, 32), new BiPaGe.AST.Literals.Integer(null, "5"), null));
            object1.Fields.Add((null, new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "32"), null));
            object1.Fields.Add((null, new Utf8String(null), new BiPaGe.AST.Literals.Integer(null, "255"), null));
            object1.Fields.Add((null, new AsciiString(null), new BiPaGe.AST.Identifiers.FieldIdentifier(null, "size"), null));
            var field5_size = new Division(
                null,
                new Subtraction(
                    null,
                    new FieldIdentifier(null, "size"),
                    new This(null)
                    ),
                new BiPaGe.AST.Literals.Integer(null, "4"));

            object1.Fields.Add((null, new Unsigned(null, 32), field5_size, null));
            var field6_size = new Subtraction(
                null,
                new Addition(
                    null,
                    new FieldIdentifier(null, "size"),
                    new FieldIdentifier(null, "size2")
                    ),
                new Multiplication(
                    null,
                    new BiPaGe.AST.Literals.Integer(null, "10"),
                    new BiPaGe.AST.Literals.Integer(null, "5")
                    ));

            object1.Fields.Add((null, new BiPaGe.AST.FieldTypes.Boolean(null), field6_size, null));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 23
0
        public void Build_ReturnsANewInstanceOfTheTargetClass()
        {
            //---------------Set up test pack-------------------
            var builder = SimpleBuilder.Create();
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var simple1 = builder.Build();
            var simple2 = builder.Build();

            //---------------Test Result -----------------------
            Expect(simple1).Not.To.Be.Null();
            Expect(simple2).Not.To.Be.Null();
            Expect(simple1).To.Be.An.Instance.Of <SimpleClass>();
            Expect(simple2).To.Be.An.Instance.Of <SimpleClass>();
            Expect(simple1).Not.To.Be(simple2);
        }
Esempio n. 24
0
        public void StaticallySizedCollection()
        {
            var input    = @"
Object1
{
    field1 : int32[5];
    field2 : ascii_string[32];
    field3 : utf8_string[255];
}";
            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 32), new BiPaGe.AST.Literals.Integer(null, "5"), null));
            object1.Fields.Add(("field2", new AsciiString(null), new BiPaGe.AST.Literals.Integer(null, "32"), null));
            object1.Fields.Add(("field3", new Utf8String(null), new BiPaGe.AST.Literals.Integer(null, "255"), null));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 25
0
        public void Create_ReturnsANewInstanceOfTheBuilder()
        {
            //---------------Set up test pack-------------------

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var b1 = SimpleBuilder.Create();
            var b2 = SimpleBuilder.Create();

            //---------------Test Result -----------------------

            Expect(b1).Not.To.Be.Null();
            Expect(b2).Not.To.Be.Null();
            Expect(b1).To.Be.An.Instance.Of <SimpleBuilder>();
            Expect(b2).To.Be.An.Instance.Of <SimpleBuilder>();
            Expect(b1).Not.To.Be(b2);
        }
Esempio n. 26
0
        public void Enumeration()
        {
            var expected = new ProgramBuilder();

            var enum1 = expected.AddEnumeration();

            enum1.Name = "SomeEnumeration";
            enum1.Type = new Unsigned(null, 8);
            enum1.Enumerators.Add(("value1", 1));
            enum1.Enumerators.Add(("value2", 2));
            enum1.Enumerators.Add(("value3", 0));

            var object1 = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("enum_field", new Identifier(null, "SomeEnumeration"), null, null));

            expected.Validate(SimpleBuilder.Build("SomeEnumeration : u8{value1=1,value2=2,value3=0}Object1{enum_field:SomeEnumeration;}"));
        }
Esempio n. 27
0
        public void TrippleLevelSingleValue()
        {
            var input    = @"
Object1
{
    field1 : i32;
    field2 : SomeOtherObject(parent.parent.field1 = 5);
}";
            var expected = new Helpers.ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new Signed(null, 32), null, null));
            object1.Fields.Add(("field2", new Identifier(null, "SomeOtherObject"), null,
                                new BiPaGe.AST.Constants.ObjectConstant(null,
                                                                        new List <ObjectField> {
                new ObjectField("parent.paernt.field1", new BiPaGe.AST.Literals.Integer(null, "5"))
            })));
            expected.Validate(SimpleBuilder.Build(input));
        }
        public void SimpleBuilder_Create()
        {
            // Arrange
            var assemblerUnderTest = new SimpleBuilderAssembler(null);
            var builder = new SimpleBuilder()
            {
                Label = "test",
                Operator = "="
            };

            // Act
            var restored = assemblerUnderTest.Create(builder);

            // Assert
            Assert.IsNotNull(restored);
            Assert.IsInstanceOf<SimpleBuilderDTO>(restored);
            var dto = (SimpleBuilderDTO)restored;
            Assert.AreEqual(builder.Label, dto.Label);
            Assert.AreEqual(builder.Operator, dto.Operator);
        }
Esempio n. 29
0
        public void ListOfBooleans()
        {
            var input    = @"
Object1
{
    field1 : bool[3] = {true, false, true};
}";
            var expected = new ProgramBuilder();
            var object1  = expected.AddObject();

            object1.Name = "Object1";
            object1.Fields.Add(("field1", new BiPaGe.AST.FieldTypes.Boolean(null), new BiPaGe.AST.Literals.Integer(null, "3"),
                                new LiteralCollection(null,
                                                      new List <BiPaGe.AST.Literals.Literal>()
            {
                new BiPaGe.AST.Literals.Boolean(null, "true"),
                new BiPaGe.AST.Literals.Boolean(null, "false"),
                new BiPaGe.AST.Literals.Boolean(null, "true")
            })));
            expected.Validate(SimpleBuilder.Build(input));
        }
Esempio n. 30
0
    public static void BuildeAsset()
    {
        AssetDatabase.Refresh();
        string buildFilter = "Assets/Prefabs/NewFolder/i/";

        string[]          directories = Directory.GetDirectories(buildFilter);
        List <GameObject> objs        = new List <GameObject>();

        for (int i = 0; i < directories.Length; i++)
        {
            GameObject     go      = AssetDatabase.LoadAssetAtPath <GameObject>(directories[i] + "/model.obj");
            Texture2D      texture = AssetDatabase.LoadAssetAtPath <Texture2D>(directories[i] + "/model.png");
            MeshRenderer[] renders = go.GetComponentsInChildren <MeshRenderer>(true);
            for (int k = 0; k < renders.Length; k++)
            {
                renders[k].sharedMaterial.mainTexture = texture;
            }
            objs.Add(go);
        }
        Selection.objects = objs.ToArray();
        Debug.LogWarning("SimpleBuilder.Start");
        SimpleBuilder.SimpleBuildeSelectAsset();
        Debug.LogWarning("SimpleBuilder.End");
        //while (LoadedStack.Count > 0)
        //{
        //    ModelData data = LoadedStack.Pop();
        //    Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>(data.textureUrl);
        //    GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>(data.modelUrl);
        //    Renderer[] renders = prefab.GetComponentsInChildren<Renderer>();
        //    for (int i = 0; i < renders.Length; i++)
        //    {
        //        renders[i].material.mainTexture = texture;
        //    }
        //    Debug.Log("加载完成" + data.modelUrl);

        //    Selection.objects = new Object[] { prefab };
        //    SimpleBuilder.SimpleBuildeSelectAsset();
        //}
    }