Описание
Библиотека: https://github.com/ArxOne/MrAdvice/
Краткое описание проблемы :
Поведение AOP IMethodAdvice
не работает при запуске игры в Unity Editor
Краткое описание ожидаемого поведения :
Когдадобавив мой Attribute
в метод класса, атрибут будет записывать параметры и возвращаемое значение метода класса.
Реализация
Файлы из пакета nuget:
![Mr advice compiled](https://i.stack.imgur.com/T8yek.png)
Мой класс регистратора:
///////////////////////////////////////////////////////////
// Logger.cs
// Implementation of the Class Logger
// Generated by Enterprise Architect
// Created on: 26-oct.-2019 17:07:59
// Original author: Loic
///////////////////////////////////////////////////////////
using System;
using ArxOne.MrAdvice.Advice;
using UnityEngine;
namespace Arch.Internal.Advices
{
public class MethodLogger : Attribute, IMethodAdvice
{
///
/// <param name="context"></param>
public void Advise(MethodAdviceContext context)
{
Debug.Log("LOGGER");
context.Proceed();
}
}
}
Мой класс MonoBehaviour
using UnityEngine;
using Arch.Internal.Advices;
public class SceneEventManager : MonoBehaviour
{
[MethodLogger]
public void Test()
{
Debug.Log("Invoked Test");
}
private void Update()
{
if (Input.anyKeyDown)
{
Test();
}
}
}
Фактическое поведение
, но этот код не печатает в консоли отладки (во время выполнения редактора) текст "LOGGER" из метода
public void Advise
Но Debug.Log("Invoked Test");
из public void Test()
в консоли отображается.
Нужно ли вызывать MrAdvice.Weaver.exe
при сборке сценариев Unity?