Вам нужно найти GameObject, который содержит компонент скрипта, на который вы планируете получить ссылку. Убедитесь, что GameObject уже находится в сцене, или Find
вернет null
.
GameObject g = GameObject.Find("GameObject Name");
Затем вы можете схватить скрипт:
BombDrop bScript = g.GetComponent();
Затем вы можете доступ к переменным и функциям скрипта.
bScript.foo();
Я только что понял, что на тот же день я ответил на очень похожий вопрос: Не знаю, как получить здоровье врага
Я немного расскажу о вашем вопросе, так как я уже ответил на это.
Что ваш код делает, так это: «Посмотрите в мой GameObject для BombDropScript
, большую часть времени сценарий не будет прикреплен к одному и тому же GameObject.
Также используйте setter и getter для maxBombs
.
public class BombDrop : MonoBehaviour
{
public void setMaxBombs(int amount)
{
maxBombs += amount;
}
public int getMaxBoms()
{
return maxBombs;
}
}
SELECT column1
, column2
FROM table1
WHERE column3 IN
(
SELECT TOP(1) column4
FROM table2
INNER JOIN table3
ON table2.column1 = table3.column1
)
мне нравится иметь весь "", в передней стороне , этот способ, которым я никогда не ищу их когда ошибка в строке X от редактора SQL.
<час>
SELECT sdcolumn123
, dscolumn234
, sdcolumn343
, ffcolumn434
, sdcolumn543
, bvcolumn645
vccolumn754
, cccolumn834
, vvcolumn954
, cvcolumn104
FROM table1
WHERE column3 IN
(
...
)
SELECT sdcolumn123, dscolumn234, asdcolumn345, dscolumn456, ascolumn554, gfcolumn645 sdcolumn754, fdcolumn845, sdcolumn954, fdcolumn1054
FROM table1
WHERE column3 IN
(
...
)
я нашел легче и более быстрым в первом примере. Надеюсь, что этот пример показывает Вам больше моей точки зрения.
Это - вопрос вкуса.
Это - мое предпочтение.
SELECT
column1
,column2
FROM
table1
WHERE column3 IN (
SELECT TOP(1) column4
FROM
table2
INNER JOIN table3
ON table2.column1 = table3.column1
)
Я не знаю, существует ли стандарт, но мне нравится делать это этот путь;
SELECT column1, column2
FROM table1
WHERE column3 IN
(
SELECT TOP(1) column4
FROM table2
INNER JOIN table3
ON table2.column1 = table3.column1
)
, потому что я могу считать и проанализировать SQL лучше.
То, что я обычно делаю,
print("SELECT column1, column2
FROM table1
WHERE column3 IN (SELECT TOP(1) column4
FROM table2 INNER JOIN
table3 ON table2.column1 = table3.column1)");
Ну, конечно, это зависит от запроса.
Для простых запросов, очень формальная схема добавления отступа является просто большей проблемой, чем это стоит и может на самом деле сделать код меньше читаемый, не больше. Но поскольку сложность выращивает Вас, должен начать быть более осторожным с тем, как Вы структурируете оператор, чтобы удостовериться, что это будет читаемо снова позже.
Да, это довольно субъективно... Но вот мои 2 цента:
SELECT
Column1,
Column2
FROM Table1
WHERE
Column3 IN (
SELECT Column4
FROM Table2
JOIN Table3 ON
Table2.Column1 = Table3.Column1
)
, Но, действительно, я, вероятно, переписал бы его без В:
SELECT
Column1,
Column2
FROM Table1
JOIN Table2 ON
Table1.Column3 = Table2.Column4
JOIN Table3 ON
Table2.Column1 = Table3.Column1
В основном, мои правила:
Это - мое нормальное предпочтение:
....SELECT column1
........,column2
....FROM table1
....WHERE column3 IN (
........SELECT TOP(1) column4
........FROM table2
........INNER JOIN table3
............ON table2.column1 = table3.column1
....)
, Хотя stackoverflow портит форматирование с дополнительным ведущим пространством, таким образом, я вставил несколько периодов, таким образом, Вы видите, что фактическое форматирует...
Я только что провел его через свой SQL prettifier, и это вышло как это....
SELECT column1, column2
FROM table1
WHERE column3 IN
(
SELECT TOP(1) column4
FROM table2
INNER JOIN table3
ON table2.column1 = table3.column1
)
http://extras.sqlservercentral.com/prettifier/prettifier.aspx
..... Но я не разработал способ получить цвета в StackOverflow.
Конечно, это сводится к персональному предпочтению. И если в установке команды, это - что-то, что должно быть согласовано среди участников для пользы непротиворечивости. Но это было бы моим предпочтением:
SELECT column1, column2
FROM table1
WHERE column3 IN(SELECT TOP(1) column4
FROM table2
INNER JOIN table3 ON
table2.column1 = table3.column1
)
Мне нравится иметь различные части моего запроса, выстраиваются в линию вертикально. Я склонен использовать размер вкладки 8 пробелов для SQL, который, кажется, работает хорошо.
SELECT column1,
column2
FROM table1
WHERE column3 IN
(
SELECT TOP(1) column4
FROM table2
INNER JOIN table3
ON table2.column1 = table3.column1
)
Если бы у Вас есть долгий SQL-оператор, который требуется переформатировать без всего ввода и переключения вкладок, можно хлопнуть его в этот веб-сайт и получить приятно результат форматирования. Можно экспериментировать с различными форматами для наблюдения, который делает текст самым читаемым.
Редактирование: Я полагаю, что это является местоположением 2014 года средства форматирования SQL.
Мне нравится форма jalbert выстраивания в линию ключевых слов с правой стороны от них. Я также добавил бы, что мне нравится ANDs, и ORs слева (некоторые люди помещают их справа.), Кроме того, мне нравится выстраиваться в линию, мой равняется знакам, если это возможно.
SELECT column1,
column2
FROM table1, table2
WHERE table1.column1 = table2.column4
AND table1.col5 = "hi"
OR table2.myfield = 678
Я записал стандарт кода для нашего магазина, который смещается в экстремальном значении к удобочитаемости / "discoverability" (последнее существо, прежде всего, полезное в операторах вставлять-выбора):
SELECT
column1,
column2
FROM
table1
WHERE
column3 IN
(
SELECT TOP(1)
column4
FROM
table2
INNER JOIN table3 ON table2.column1 = table3.column1
)
На более сложных запросах становится более очевидно, как это полезно:
SELECT
Column1,
Column2,
Function1
(
Column1,
Column2
) as Function1,
CASE
WHEN Column1 = 1 THEN
a
ELSE
B
END as Case1
FROM
Table1 t1
INNER JOIN Table2 t2 ON t1.column12 = t2.column21
WHERE
(
FilterClause1
AND FilterClause2
)
OR
(
FilterClause3
AND FilterClause4
)
, Как только Вы перемещаетесь в системы с больше, чем единственное соединение в большинстве Ваших запросов, это был мой опыт, что использующий вертикальное пространство подробно Ваш лучший друг со сложным SQL.
Мне нравится иметь "реки" пробела в коде. Это делает немного легче просканировать.
SELECT column1,
column2
FROM table1
WHERE column3 IN (SELECT column4
FROM table2
JOIN table3
ON table2.column1 = table3.column1);
Не уверенный существует принятая практика, но здесь теперь, как я сделал бы это:
SELECT
column1,
column2
FROM
table1
WHERE
column3 IN
(
SELECT TOP(1)
column4
FROM
table2
INNER JOIN
table3
ON table2.column1 = table3.column1
)
Форматирование SQL является областью, где существует большое различие и разногласие... Но fwiw, мне нравится фокусироваться на удобочитаемости и думать, что независимо от того, что Вы делаете, последовательно соответствуя любым правилам, которые уменьшают удобочитаемость, когда старое клише идет, "глупая непротиворечивость" ("Глупая непротиворечивость эльф для простых умов")
Так, вместо того, чтобы назвать их правилами, вот некоторые инструкции. Для каждого Главного пункта в SQL-операторе (Выбор, Вставьте, Удалите, От, Где, Наличие, Группа, Порядок... Я могу отсутствовать, некоторые) должно ЛЕГКО идентифицироваться. Таким образом, я обычно располагаю их с отступом на высшем уровне, все даже друг с другом. Тогда в рамках каждого пункта, я располагаю следующую логическую sub структуру с отступом равномерно... и так далее.. Но я не стесняюсь к (и часто делайте), измените шаблон, если бы в каком-либо отдельном случае это было бы более читаемо, чтобы сделать так... Сложные Операторы выбора являются хорошим примером. Поскольку что-либо, что требует горизонтальной прокрутки, уменьшает удобочитаемость чрезвычайно, я часто пишу, что комплекс (вложил) Case-выражения на нескольких строках. Когда я делаю, я пытаюсь сохранить начало такого выступа оператора на основе, он - логическое место в SQL-операторе и остальная часть отступа строк оператора несколько символов furthur...
код Базы данных SQL был вокруг в течение долгого времени, прежде, чем компьютеры имели нижний регистр, таким образом, существует историческое предпочтение верхних ключевых слов преобразования регистра, но я предпочитаю удобочитаемость по традиции... (и каждый инструмент, я использую цветовые коды ключевые слова теперь так или иначе)
, я также использовал бы псевдонимы Таблицы для сокращения суммы текста, который должен просканировать глаз, чтобы к grok структура запроса, пока псевдонимы не создают беспорядок. В запросе меньше чем с 3 или 4 таблицами Односимвольные псевдонимы прекрасны, я часто использую первую букву таблицы, если все там представляют в виде таблицы, запускаются с различной буквы... снова, независимо от того, что большинство способствует удобочитаемости. Наконец, если Ваша поддержка БД это, многие ключевые слова являются дополнительными, (как "Внутренний", "Внешнее", "Как" для псевдонимов, и т.д.) "В" (от Вставки В) является дополнительным на SQL-сервере - но не на Oracle) Так быть осторожным относительно использования этого, если Ваш код должен быть независимой платформой...
Ваш пример, я записал бы как:
Select column1, column2
From table1 T1
Where column3 In (Select Top(1) column4
From table2 T2
Join table3 T3
On T2.column1 = T3.column1)
Или
Select column1, column2
From table1 T1
Where column3 In
(Select Top(1) column4
From table2 T2
Join table3 T3
On T2.column1 = T3.column1)
, Если бы там намного больше столбцов на избранном пункте, я расположил бы вторые и последующие строки с отступом... Я обычно НЕ придерживаюсь никакого строгого (один столбец за строку) вид правила, поскольку прокрутка veritcally почти так плоха для удобочитаемости, как прокрутка горизонтально, особенно если только первые десять столбцов экрана имеют какой-либо текст в них)
Select column1, column2, Col3, Col4, column5,
column6, Column7, isNull(Column8, 'FedEx') Shipper,
Case Upper(Column9)
When 'EAST' Then 'JFK'
When 'SOUTH' Then 'ATL'
When 'WEST' Then 'LAX'
When 'NORTH' Then 'CHI' End HubPoint
From table1 T1
Where column3 In
(Select Top(1) column4
From table2 T2
Join table3 T3
On T2.column1 = T3.column1)
Формат, код любым способом делает его самым читаемым...
SELECT column1, column2
FROM table
WHERE column3 IN (
SELECT TOP(1) column4
FROM table2
INNER JOIN table3 ON table2.column1 = table3.column1
)
Это довольно коротко и легко читать. Я внес бы изменения, если бы было больше выбранных столбцов или больше условий объединения.
Я отформатировал бы как это:
SELECT
column1,
column2
FROM
table1
WHERE
column3 IN (SELECT TOP(1)
column4
FROM
table2
INNER JOIN table3 ON table2.column1 = table3.column1)
или как это:
SELECT
column1,
column2
FROM
table1
WHERE
column3 IN (SELECT TOP(1) column4
FROM table2
INNER JOIN table3 ON table2.column1 = table3.column1)
Это - мой персональный метод. В зависимости от длины условия объединения я иногда располагаю его с отступом на строке ниже.
SELECT
column1,
column2
FROM
table1
WHERE
column3 IN (
SELECT TOP(1)
column4
FROM
table2
INNER JOIN table3 ON table2.column1 = table3.column1
)
SELECT
column1,
column2
FROM
table1
WHERE
column3 IN (
SELECT TOP(1)
column4
FROM
table2
INNER JOIN table3
ON table2.column1 = table3.column1 -- for long ones
)
Пример отступа очень-очень-очень сложного SQL:
SELECT
produtos_cesta.cod_produtos_cesta,
produtos.nome_pequeno,
tab_contagem.cont,
produtos_cesta.sku,
produtos_kits.sku_r AS sku_kit,
sku_final = CASE
WHEN produtos_kits.sku_r IS NOT NULL THEN produtos_kits.sku_r
ELSE produtos_cesta.sku
END,
estoque = CASE
WHEN produtos2.estoque IS NOT NULL THEN produtos2.estoque
ELSE produtos.estoque
END,
produtos_cesta.unidades as unidades1,
unidades_x_quantidade = CASE
WHEN produtos.cod_produtos_kits_tipo = 1 THEN CAST(produtos_cesta.quantidade * (produtos_cesta.unidades / tab_contagem.cont) * produtos_kits.quantidade AS int)
ELSE CAST(produtos_cesta.quantidade * produtos_cesta.unidades AS int)
END,
unidades = CASE
WHEN produtos.cod_produtos_kits_tipo = 1 THEN produtos_cesta.unidades / tab_contagem.cont * produtos_kits.quantidade
ELSE produtos_cesta.unidades
END,
unidades_parent = produtos_cesta.unidades,
produtos_cesta.quantidade,
produtos.controla_estoque,
produtos.status
FROM
produtos_cesta
INNER JOIN produtos
ON (produtos_cesta.sku = produtos.sku)
INNER JOIN produtos_pacotes
ON (produtos_cesta.sku = produtos_pacotes.sku)
INNER JOIN (
SELECT
produtos_cesta.cod_produtos_cesta,
cont = SUM(
CASE
WHEN produtos_kits.quantidade IS NOT NULL THEN produtos_kits.quantidade
ELSE 1
END
)
FROM
produtos_cesta
LEFT JOIN produtos_kits
ON (produtos_cesta.sku = produtos_kits.sku)
LEFT JOIN produtos
ON (produtos_cesta.sku = produtos.sku)
WHERE
shopper_id = '" + mscsShopperId + @"'
GROUP BY
produtos_cesta.cod_produtos_cesta,
produtos_cesta.sku,
produtos_cesta.unidades
)
AS tab_contagem
ON (produtos_cesta.cod_produtos_cesta = tab_contagem.cod_produtos_cesta)
LEFT JOIN produtos_kits
ON (produtos.sku = produtos_kits.sku)
LEFT JOIN produtos as produtos2
ON (produtos_kits.sku_r = produtos2.sku)
WHERE
shopper_id = '" + mscsShopperId + @"'
GROUP BY
produtos_cesta.cod_produtos_cesta,
tab_contagem.cont,
produtos_cesta.sku,
produtos_kits.sku_r,
produtos.cod_produtos_kits_tipo,
produtos2.estoque,
produtos.controla_estoque,
produtos.estoque,
produtos.status,
produtos.nome_pequeno,
produtos_cesta.unidades,
produtos_cesta.quantidade,
produtos_kits.quantidade
ORDER BY
produtos_cesta.sku,
produtos_cesta.unidades DESC