>普通にオブジェクトBにif(Input.ButtonDown("x"))・・・だと無理でした
処理的には問題ないから上手くいかないのは別の原因では?

class ObjectB
{
void Update()
{
if(接触された)
{
if(Input.ButtonDown("x"))
{
何かする
}
}
}
}

こういうことでしょ。特に問題ない。
ただコード的にはInput判定はプレイヤー側(ObjectA)に全部纏めたほうが美しいと思うけどね