using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
namespace IllusionPlugin
{
///
/// Interface for generic Illusion unity plugins. Every class that implements this will be loaded if the DLL is placed at
/// data/Managed/Plugins.
///
public interface IPlugin
{
///
/// Gets the name of the plugin.
///
string Name { get; }
///
/// Gets the version of the plugin.
///
string Version { get; }
///
/// Gets invoked when the application is started.
///
void OnApplicationStart();
///
/// Gets invoked when the application is closed.
///
void OnApplicationQuit();
///
/// Gets invoked on every graphic update.
///
void OnUpdate();
///
/// Gets invoked on ever physics update.
///
void OnFixedUpdate();
void OnAnimatorIK(int layerIndex);
void OnAnimatorMove();
void OnApplicationFocus(bool hasFocus);
void OnApplicationPause(bool pauseStatus);
void OnAudioFilterRead(float[] data, int channels);
void OnBecameInvisible();
void OnBecameVisible();
void OnBeforeTransformParentChanged();
void OnCanvasGroupChanged();
void OnCanvasHierarchyChanged();
void OnCollisionEnter(Collision other);
void OnCollisionEnter2D(Collision2D other);
void OnCollisionExit(Collision other);
void OnCollisionExit2D(Collision2D other);
void OnCollisionStay(Collision other);
void OnCollisionStay2D(Collision2D other);
void OnConnectedToServer();
void OnControllerColliderHit(ControllerColliderHit hit);
void OnDidApplyAnimationProperties();
void OnDisable();
void OnDrawGizmos();
void OnDrawGizmosSelected();
void OnEnable();
void OnGUI();
void OnJointBreak(float breakForce);
void OnMouseDown();
void OnMouseDrag();
void OnMouseEnter();
void OnMouseExit();
void OnMouseOver();
void OnMouseUp();
void OnMouseUpAsButton();
void OnParticleCollision(GameObject other);
void OnPostRender();
void OnPreCull();
void OnPreRender();
void OnRectTransformDimensionsChange();
void OnRenderImage(RenderTexture src, RenderTexture dest);
void OnRenderObject();
void OnServerInitialized();
void OnTransformChildrenChanged();
void OnTransformParentChanged();
void OnTriggerEnter(Collider other);
void OnTriggerEnter2D(Collider2D other);
void OnTriggerExit(Collider other);
void OnTriggerExit2D(Collider2D other);
void OnTriggerStay(Collider other);
void OnTriggerStay2D(Collider2D other);
void OnValidate();
void OnWillRenderObject();
void Reset();
}
}