//constructor
    public static Unit CreateComponent( UnitType unitType, Tile location, Village v, GameObject PeasantPrefab )
    {
        Tile toplace = null;
        foreach (Tile a in location.getNeighbours())
        {
            if(a.prefab == null && a.getOccupyingUnit() == null && a.getColor() == location.getColor())
            {
                toplace = a;
            }
        }
        if(toplace == null)
        {
            toplace = location;
        }
        GameObject o = Instantiate(PeasantPrefab, new Vector3(toplace.point.x, 0.15f, toplace.point.y), toplace.transform.rotation) as GameObject;
        Unit theUnit = o.AddComponent<Unit>();
        theUnit.locatedAt = toplace;

        theUnit.myType = unitType;
        theUnit.myVillage = v;
        theUnit.myAction = UnitActionType.ReadyForOrders;

        location.setOccupyingUnit (theUnit);
        return theUnit;
    }
    void initUnitNet(int unitTypeID, NetworkViewID locationTileID, NetworkViewID villageID)
    {
        //Getting all the parameters
        UnitType unitType = (UnitType)unitTypeID;
        Tile location = NetworkView.Find (locationTileID).gameObject.GetComponent<Tile>();
        Village v = NetworkView.Find (villageID).gameObject.GetComponent<Village>();

        //CreateComponent
        Tile toplace = null;
        foreach (Tile a in location.getNeighbours())
        {
            if(a.prefab == null && a.getOccupyingUnit() == null && a.getColor() == location.getColor())
            {
                toplace = a;
            }
        }
        if(toplace == null)
        {
            toplace = location;
        }
        //BE CAREFUL!!! If the order of Tiles in neighbors are not the same, the position of the new unit will be different!!
        gameObject.transform.position = new Vector3(toplace.point.x, 0.15f, toplace.point.y);

        locatedAt = toplace;
        myType = unitType;
        myVillage = v;
        myAction = UnitActionType.ReadyForOrders;
        locatedAt.setOccupyingUnit (this);
    }