Ссылку на Lenin нужно сохранять в глобальную переменную, если вы собираетесь с ней работать дальше. Но лучше завязываться на теги к маркеру и далее их сверять. marker.getTag() === "lenin". Но и этот подход с хардкодом плох. Обычно в таких случаях есть массив с готовыми данными, типа найти в нём объект с id маркера и взять от туда поле text и поместить в балун.
Воспользоваться proj4 (а уже вышла 5 версия). Перевести вашу широту/долготу в метровую проекцию, например UTM. Прибавить в ней нужные метры. Перевести обратно в широту/долготу.
Можно не зацикливаться на гуглояндах и рассмотреть более богатый инструментарий - https://leafletjs.com/plugins.html#edit-geometries (Leaflet.draw). Хотя вы можете их подложки подключить к лефлету, но это уже будет нарушением условий гигантов.
EditorWindow - это редактор и работает оно только в нём, после билдинга проекта доступа к сборке UnityEditor нет. И служит она для обслуживания компонентов MonoBehavour, а не наоборот. Если вы хотите как-то на него влиять, то в компоненте создаёте какие-то поля, а уже в окне редактора проверяете их и меняете свою логику.
Зависит от типа собственно константы. Если это число, то она упадёт в регистры и менять пришлось бы opcode. Если же это данные, то зависит от компилятора. Некоторые могу паковать константы в секцию с данными и их можно поменять. Но есть кто создаёт секцию с доступом только для чтения.
_
public interface IId
{
int ID { get; set; }
}
public class Element : IId
{
public int Type
{
get
{
return ((IId)this).ID;
}
}
int IId.ID { get; set; }
}