Как интерполировать переменные в строках в JavaScript без конкатенации?

Проблема в том, что вы используете смещение камеры (moveVector), чтобы определить, находится ли камера в ограничительной рамке. Вместо этого вы должны использовать положение камеры,

,
gameObject.transform.Position 
,

или будущее положение камеры,

,
gameObject.transform.position + moveVector
,

, чтобы определить, находится ли он в ограничительной рамке или нет. Таким образом, измените ваш код следующим образом:

GameObject.FindObjectOfType<PlayerController>().room.bounds.Contains(camera.transform.position + moveVector)

Убедитесь, что ваша переменная 'room' имеет тип Collider в скрипте 'PlayerController',

 var room = GetComponent<Collider>();
336
задан Sebastian Simon 2 March 2018 в 03:18
поделиться

6 ответов

Я использовал бы обратную галочку ''.

let name1 = 'Geoffrey';
let msg1 = `Hello ${name1}`;
console.log(msg1); // 'Hello Geoffrey'

, Но если Вы не знаете name1, когда Вы создаете msg1.

Для exemple, если msg1 прибыл из API.

можно использовать:

let name2 = 'Geoffrey';
let msg2 = 'Hello ${name2}';
console.log(msg2); // 'Hello ${name2}'

const regexp = /\${([^{]+)}/g;
let result = msg2.replace(regexp, function(ignore, key){
    return eval(key);
});
console.log(result); // 'Hello Geoffrey'

Это заменит ${name2} его значением.

0
ответ дан 23 November 2019 в 00:39
поделиться

var hello = "foo";

var my_string ="I pity the";

console.log (my_string, привет)

-2
ответ дан 23 November 2019 в 00:39
поделиться

До Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, нет, это было невозможно в javascript. Вам пришлось бы прибегнуть к следующим способам:

var hello = "foo";
var my_string = "I pity the " + hello;
163
ответ дан 23 November 2019 в 00:39
поделиться

До Firefox 34 / Chrome 41 / Safari 9 / Microsoft Edge, нет. Хотя вы можете попробовать sprintf для JavaScript , чтобы пройти половину пути:

var hello = "foo";
var my_string = sprintf("I pity the %s", hello);
40
ответ дан 23 November 2019 в 00:39
поделиться

ну, вы можете сделать это, но это не esp general

'I pity the $fool'.replace('$fool', 'fool')

Вы можете легко написать функцию, которая делает это разумно, если вам действительно нужно

29
ответ дан 23 November 2019 в 00:39
поделиться

Если вы пытаетесь выполнить интерполяцию для микротемплинга, мне нравится Mustache.js для этой цели.

4
ответ дан 23 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: