INode BTRunnerInit()

{

    return new SelectorNode

        (

            new List<INode>()

            {

                new SequenceNode

                (

                    new List<INode>()

                    {

                        new CheckMeleeAttacking(transform),

                        new CheckEnemyWithinMeleeAttackRange(transform,target),

                        new DoMeleeAttack(transform,target),

                    }

                ),

                new DetectedDecorator

                (

                    new SelectorNode

                    (

                        new List<INode>()

                        {

                            new SequenceNode

                            (

                                new List<INode>()

                                {

                                    new CheckRangedAttackCooldown(),

                                    new CheckRangedAttacking(),

                                    new SelectorNode

                                    (

                                        new List<INode>()

                                        {

                                            new SequenceNode

                                            (

                                                new List<INode>()

                                                {

                                                    new BowAttackWait(),

                                                    new DoBowAttack()

                                                }

                                                ),

                                            new SequenceNode

                                            (

                                                new List<INode>()

                                                {

                                                    new FireBallAttackWait(),

                                                    new DoFireBallAttack()

                                                }

                                                )

                                        }

                                        ),

                                }

                                ),

                            new SequenceNode

                            (

                                new List<INode>()

                                {

                                    new CheckMeleeAttacking(transform),

                                    new CheckEnemyWithinMeleeAttackRange(transform,target),

                                    new DoMeleeAttack(transform,target),

                                }

                                ),

                            new SequenceNode

                            (

                                new List<INode>()

                                {

                                    new MoveToDetectEnemy(transform, target)

                                }

                                ),

                        }

                    ), transform, target

                ),

                new MoveToOriginPosition(transform,originPos)

            }

        );

}

코드가 되게 난잡하고 가독성이 떨어져보이는데 보통 이렇게는 안되지?