void OnEnable()
 {
     // obtain reference to script and object the editor is describing
     tilesSettings = (TilesSettings)target;
     tilesGameObject = tilesSettings.gameObject;
     CreateTilesList();
 }
    // Use this for initialization
    void Start()
    {
        // get collider data
        BoxCollider2D boxCollider2D = this.GetComponent<BoxCollider2D>();
        if(boxCollider2D != null)
        {
            colliderOffset = boxCollider2D.offset;
            coliderSize = boxCollider2D.size;
        }

        // get sprite renderer component and sprite
        spriteRenderer = this.GetComponent<SpriteRenderer>();
        if (spriteRenderer != null)
        {
            sprite = spriteRenderer.sprite;
        }

        // get current player tile
        Vector3 vPos = this.transform.position;
        tilesSettings = GameObject.FindObjectOfType(typeof(TilesSettings)) as TilesSettings;
        if (tilesSettings != null)
        {
            float fTileWidthHalf = tilesSettings.TileWidth * 0.5f;
            AINode[] aiNodes = tilesSettings.GetComponentsInChildren<AINode>();
            currentNode = aiNodes.FirstOrDefault(node => Mathf.Abs(node.transform.position.x - vPos.x) <= fTileWidthHalf &&
                                                 Mathf.Abs(node.transform.position.y - vPos.y) <= fTileWidthHalf);
        }
    }