Во втором сценарии вы объявили:
public Detection _Detection;
, но не сказали, для чего назначено _Detection
.Так что это просто пустой экземпляр вашего сценария обнаружения.Вам нужно сослаться на скрипт, который прикреплен к конкретному объекту, который вы ищете.Например, если Detection и DoorOpener находятся на одном и том же игровом объекте, вы бы это сделали.
_Detection = gameObject.getComponent<Detection>();
или иначе вы могли бы сделать что-то вроде ...
_Detection = GameObject.FindWithTag('TagOfObjWithDetScript').getComponent<Detection>();
теперь значение haskey
в DoorOpener совпадает со значением haskey
в конкретном экземпляре сценария обнаружения, который вы используете.