Skip to content

takaaptech/UnityCodeGen

 
 

Repository files navigation

UnityCodeGen

A code generation library for Unity. Based on Vengarioth/UnityCodeGen

Example

var builder = new AstBuilder();

builder.WithUsing()
    .WithNamespaceName("System");

var namespaceBuilder = builder.WithNamespace()
    .WithName("TestNamespace");

var classBuilder = namespaceBuilder.WithClass()
    .WithName("FooBar")
    .WithVisibility(AccessType.Public)
    .IsPartial(true);

classBuilder.WithProperty()
    .WithName("Foo")
    .WithType("int")
    .WithVisibility(AccessType.Public)
    .WithSetVisibility(AccessType.Public);

classBuilder.WithProperty()
    .WithName("Bar")
    .WithType("int")
    .WithVisibility(AccessType.Public)
    .WithSetVisibility(AccessType.Private);


classBuilder = namespaceBuilder.WithClass()
    .WithName("FooBar")
    .WithVisibility(AccessType.Public)
    .IsPartial(true);

var methodBuilder = classBuilder.WithMethod()
    .WithVisibility(AccessType.Public)
    .WithReturnType("void")
    .WithName("Serialize");

methodBuilder.WithParameter()
    .WithName("buffer")
    .WithType("IWriteableBuffer");

methodBuilder.WithParameter()
    .WithName("anotherBuffer")
    .WithType("IWriteableBuffer");

methodBuilder = classBuilder.WithMethod()
    .WithVisibility(AccessType.Public)
    .WithReturnType("void")
    .WithName("Deserialize");

methodBuilder.WithParameter()
    .WithName("buffer")
    .WithType("IReadableBuffer");

var result = new CSharpRenderer().Render(ast);

Results in

using System;

namespace TestNamespace
{
    public partial class FooBar
    {
        public int Foo { get; set; }
        public int Bar { get; private set; }
    }

    public partial class FooBar
    {
        public void Serialize(IWriteableBuffer buffer, IWriteableBuffer anotherBuffer)
        {
            // TODO method body
        }

        public void Deserialize(IReadableBuffer buffer)
        {
            // TODO method body
        }

    }

}

About

A code generation library for Unity. Based on Vengarioth/UnityCodeGen.

Resources

License

MIT, Unknown licenses found

Licenses found

MIT
licence
Unknown
licence.meta

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%