
Japanese: 
Player ゲームオブジェクトがアイテムと衝突するときに
それらが取得できるように
したいと思います
そのためにはPlayer ゲームオブジェクトと
Pickup ゲームオブジェクト間の
衝突を検出する必要があります
これらの衝突に
新しいビヘイビアをトリガーさせ
正しいオブジェクトを取得していることを
確認するために
衝突をテストする必要があります
アイテム、プレイヤーである UFO
壁、すべてがコライダーを持っており
それによって衝突が報告されます
どのオブジェクト同士が衝突しているのか
見極めるテストをしないと
うっかり、壁などの誤ったオブジェクトを
集めてしまうでしょう
まず、プレイヤーを再アクティベートする必要があります
Player ゲームオブジェクトをハイライトし

English: 
We want to be able to pick up our collectable
game objects when our Player game object
collides with them.
To do this we need to detect
our collisions between the
Player game object and the Pickup game objects.
We will need to have these collisions
trigger a new behaviour
and we will need to test these collisions
to make sure we are picking up the
correct objects.
The Pickup objects, the Player's UFO
and the walls all have colliders that
inform us about collisions.
If we didn't test our collisions
to find out which objects we've collided with
we could collect the wrong objects by accident.
We could collect the walls for example.
First we need to reactivate our Player.
Highlight the Player game object

English: 
and click the Active checkbox
to make the player visible once more in the scene.
Next let's select the PlayerController script
and open it for editing by double clicking
on the script name
in the PlayerController component.
Just a note, we could edit this script
regardless of whether the game
object is active or not.
Now that we have the script open what
code are we going to write?
We could write collider and then search the
documentation using the hot key combination.
But there is a different way that we could
do this as well.
Let's return to Unity and look at the
details of our Player game object.
What we're interested in here is the
Circle Collider 2D component.
In the header of each component on the left
is the component's turndown arrow,
the icon,
the enable checkbox, if it's available,

Japanese: 
アクティブにするチェックボックスをクリックし
シーンで再び見えるようにします
PlayerController コンポーネントで
PlayerController スクリプトを選び
その名前をダブルクリックして
開きます
スクリプトは、そのオブジェクトが
アクティブでもそうでなくても
編集可能です
スクリプトを開きました
どんなコードを書くべきでしょうか
コライダーを書き、それからホットキーを使って
ドキュメンテーションを検索することもできます
しかし、
違うやり方でもあります
Unity にもどって 
Player ゲームオブジェクトの詳細を見てみましょう
ここで、使えそうなのが
Circle Collider 2D コンポーネントです
各コンポーネントのヘッダーの左側にあるのは
コンポーネントの折り畳み用の矢印
アイコン、使用可能な場合は
アクティブ化のためのチェックボックス

English: 
and the type of component.
On the right is the context sensitive gear gizmo
and an icon of a little book
with a question mark.
This is what we need.
This is the quick link to the
component reference in the Unity manual.
If we select this icon we are
taken not to the scripting reference
but to the component reference in
the Unity manual.
We would read this document to find
out more about how to use this
component in the context of the editor.
We however want to find out how to
script to this component's class.
To do this we simply switch to scripting
and we are taken to the scripting reference
for the circle collider 2D.
We want to detect and
test our collisions.
For this project we are going to use
OnTriggerEnter2D.
You'll find this at the bottom of
the documentation page under

Japanese: 
そして、コンポーネントのタイプです
右側はコンテキストによって変わる歯車型メニューと
クエスチョンマークがついた
小さな本のアイコンです
この小さな本を使用します
これは Unity マニュアルの
コンポーネントレファレンスへのクイックリンクです
このアイコンを選択すると
スクリプトリファレンスでなく
マニュアルのコンポーネントリファレンスに
移動します
このコンポーネントの使い方を
エディターとの関連でもっと知るために
このドキュメンテーションを読むこともできます
しかし、知りたいのはこのコンポーネントクラスへの
スクリプトの方法です
そのために、スクリプティングへ切り替えて
circle collider 2D の
スクリプトリファレンスへ移動します
私たちに必要なのは
衝突の検出とテストです
このプロジェクトには
OnTriggerEnter2D を使用します
この項目は、ドキュメンテーションの
最後の方で

English: 
Messages.
Just imagine if we were,
say, a daring plumber and we
jumped up to collect a perfect
arch of coins and bounced
off the very first one as we
collected it and fell back to the ground.
Not very elegant.
This code will give us the ability to detect
the contact between our Player game object
and our Pickup game object
without actually creating
a physical collision.
Click on OnTriggerEnter2D
to learn more.
The code example on this page is
not exactly what we're looking for
but that's okay, we can change it.
First let's copy a portion
of this example code.
We'll copy from the line
public bool charcterInQuicksand
to the closing bracket of our
OnTriggerEnter2D function.

Japanese: 
Messages の下にあります
例えば、自分が配管工で
素晴らしいお宝のコインを
集めるために飛びあがり
最初のコインを収集したと思ったら
跳ね返り地面に落ちるところを
ちょっと想像してみてください
あまり素敵ではないですね
このコードを使うと
実際の物理的な衝突なしに 
Player ゲームオブジェクトと 
Pickup ゲームオブジェクトの接触を
検出することができます
さらに情報を得るには
OnTriggerEnter2D をクリックしてください
このページのコード例は
私たちが求めているものにピッタリではありません
しかし、手を加えるので大丈夫です。
まず、このコードの一部を
コピーしましょう
OnTriggerEnter2D 関数の
public bool charcterInQuicksand から
それを閉じる括弧まで
コピーします

Japanese: 
これを FixedUpdate 関数の下に
貼り付けます
次に、コードを見てみましょう
私たちは OnTriggerEnter2D 関数を使います
Player ゲームオブジェクトが最初に 2D のトリガーコライダーに接触するとき
OnTriggerEnter2D は 
Unity　によって呼び出されます
接触した
2D トリガーコライダーへの参照を
引数として渡します
これがOther という 2D コライダーです
この参照によって
接触する2D コライダーを捕えることができます
このコードで
他の 2D トリガーコライダーに接触するとき
ブーリアン変数 CharacterInQuicksand を
True に設定します
これによってこのゲームに変化はありませんが
他のスクリプトで
プレイヤーをゆっくり動かすためなどに使用できます
このレッスンでは
もっと違う用途で使います
以前 Pickup オブジェクトを作成したときに

English: 
Let's paste this beneath our
FixedUpdate function.
Next let's look at this code.
We're using the function OnTriggerEnter2D.
OnTriggerEnter2D will be called by Unity
when our Player game object first touches
a 2D trigger collider.
We're giving as an argument
a reference to the 2D trigger collider
that we have touched.
This is the 2D collider called Other.
This reference gives us a way to get
a hold of the 2D colliders that we touch.
With this code, when we touch another
2D trigger collider we will
set the boolean variable
CharacterInQuicksand to true.
This won't change anything in our game,
but could be used by another script
to make the Player move slowly, for instance.
For the sake of this lesson
we'll use this to do something different.
Previously we deactivated the

English: 
Player object manually in
the editor when we were creating our
Pickup objects.
Now we will deactivate
our Pickup object via a script.
First we can remove the
two lines containing the characterInQuicksand variable.
Next, how will we deactivate
our Pickup objects?
Well, what clues do we have?
We can address the other collider's
game object through other.gameObject.
We want to test the other game object
and if it's a Pickup object
we want to deactivate that game object.
So let's look up Game Object
with our hot key combination
and see what we can find.
In the documentation page for Game Object
there are a few important items
that we want.
The first is Tag.

Japanese: 
エディターによって手動で 
Player オブジェクトを
ディアクティベートしました
今度はPickup オブジェクトを
スクリプトでディアクティベートします
まず characterInQuicksand 変数を含む
2 行を削除します
次に、どうやって Pickup オブジェクトを
ディアクティベートできるでしょうか
さて、どんな手がかりがあるでしょう
other コライダーのゲームオブジェクトは
other.gameObject として表すことができます
other ゲームオブジェクトをテストして
それが Pickup オブジェクトならば
そのゲームオブジェクトをディアクティベートすればいいのです
それでは、何が見つかるか
ホットキーを使って
GameObjectを見てみましょう
GameObject のドキュメンテーションのページで
役立ちそうなアイテムが
いくつかあります
1 つめは Tag です

English: 
Tag allows us to identify the game object
by comparing the Tag value
to a string.
The second is Set Active.
This is how we activate or deactivate
a game object through code.
The last item we need to know about is
CompareTag.
CompareTag allows us to efficiently
compare the tag of any game object
to a string value.
Let's open up these three items,
each in their own tab.
Tag allows us to identify a game object
by a tag value.
We must declare our tags in the
Tags And Layers panel before using them.
Once the tag has been declared
we can use this tag in our code.
In this example the game object's
tag is being set to Player.

Japanese: 
Tag を使うと
Tag の値と文字列を比較して
ゲームオブジェクトを識別できます
2 つめは Set Active です
これは、コードを通じてゲームオブジェクトを
アクティベート/ディアクティベートする方法です
最後は
CompareTag です
CompareTag で効率よく
ゲームオブジェクトの Tag を文字列の値と
比較できます
この 3 つをそれぞれ別のタブで
開いてみましょう
Tag を使うと、Tag の値で
ゲームオブジェクトを認識できます
使用する前にTags And Layers パネルで
tag を宣言する必要があります
tag を宣言したら
コードに使用できます
この例では、ゲームオブジェクトのtag　は
Player に設定されます

Japanese: 
 Tag をテスト、検証、比較するには
効果的なビルトインの方法があります　
それはCompareTag です
CompareTag で、効率よく
ゲームオブジェクトの Tag を文字列の値と
比較できます
サンプルコードをコピーして
スクリプトに貼り付けましょう
今度はGameObject.SetActive です
これは、ゲームオブジェクトを
アクティベート/ディアクティベートする方法です
このコードはInspector の Name フィールドの前にある
アクティベート用のチェックボックスを
クリックするのと同様です
ここでは、コードスニペッツと同様に
Pickup ゲームオブジェクトをディアクティベートするために
GameObject.SetActive を呼び出します
このコードをコピーして
スクリプトエディターに戻り
同じように貼り付けます

English: 
To test, check, or compare a tag
there is an efficient built-in way and that
is CompareTag.
With CompareTag we can efficiently
compare the tag of any game object
with a string value.
Let's copy the sample code and
paste it in to our working pallet.
Now GameObject.SetActive
This is how we activate or deactivate
a game object.
This is the code equivalent of
clicking the Active checkbox next to
the Name field in the inspector.
In our case, just like the code snippet,
we will call GameObject.SetActive
to deactivate our Pickup game objects.
Let's copy this code and returning
to our script editor, paste it in
to our pallet as well.

Japanese: 
コードを書くのに十分な材料がそろったと思います
では GameObject を
削除して
以下のように修正します
if (other.gameObject.CompareTag("Pickup") 
Pickup タグは
ダウンロードしたプロジェクトですでに
決められています
しかし、ここでは Tags And Layers パネルに
独自の Tag を加える方法を
見てみましょう
Destroy (other.gameObject) の行も
削除できます
If ステートメントに
中括弧を加えます
このコードは中括弧なしでも動きますが
ただし、中括弧がない場合は
If ステートメントの次の 1 行だけが
If ステートメントと連動します
その他の行は
Ifの条件を満たすかどうかにかかわらず
実行されます
If ステートメントと複数行を

English: 
I feel we have enough pieces to write our code
let's delete the game object
that we previously typed and let's
modify the following line to read
if (other.gameObject.CompareTag("Pickup")
The Pickup tag has
already been defined in the
project that you downloaded.
But we'll take a look at how to
add your own tag to the
Tags And Layers panel.
We can also delete the
Destroy (other.gameObject) line.
We are going to add braces
to our If statement.
This code will work without braces.
Without braces however,
only the next line of code is
associated with the If statement.
All remaining lines of code will be
executed regardless of how the
conditions in the If statement are met.
To associate multiple lines of code with

English: 
an If statement they must be
enclosed in braces.
For clarity in this case we will
enclose our gameObject.SetActive (false) line
inside a set of braces
making sure that the code is properly indented.
Remember, indenting code has
no meaning to the compiler.
Creating braces around our code
now not only makes the association
with the If statement clear,
but will allow us to easily update
this block of code in later lessons.
With the script as it's currently written
we would be setting the Player's game object
to Inactive.
Instead we want to deactivate
the "other" game object.
So let's change our second line to
other.gameObject.SetActive (false).
Now this code will be called
every time we touch a
2D trigger collider.

Japanese: 
関連付けたい場合は
複数行を中括弧で囲みます
ここでは、明確にするために
gameObject.SetActive (false) の行を
1 組の中括弧にいれます
コードを適切にインデントしてください
コードをインデントしても
コンパイラーにはなんの意味もありません
今、コードの周りに中括弧をつけるのは
If ステートメントとの関係を明白にするだけでなく
後のレッスンで
中括弧で囲んだ部分のアップデートを
簡単にするためです
スクリプトは現状のままだと
Player のゲームオブジェクトを
非アクティブに設定します
代わりに、other ゲームオブジェクトを 
ディアクティベートする必要があります
そのため、2 行目を
other.gameObject.SetActive (false) に変えます
これで、2D トリガーコライダーが
接触されるたびに
このコードが呼び出されます

English: 
We're given a reference to the collider we touch
in "other",
we test it's tag and if
the tag is the same as the
string value Pickup we will
take the other game object and
we will called SetActive (false)
which will deactivate that game object.
Let's save the script and return to Unity
to check for errors.
The first thing we need to do is
to set the Tag Value
for our Pickup prefab.
Navigate to the Prefabs folder
and highlight the Pickup prefab
in the project window.
With the Pickup highlighted click on the
Tag List at the top of the inspector.
We'll see that the Pickup
tag has been predefined
as part of the project.
If we needed to define and additional
tag we could choose
Add Tag.

Japanese: 
Other で、接触するコライダーへの参照を
取得します
その tag をテストし
tag が
文字列の値 PickUp と等しければ
そのother ゲームオブジェクトを取得し
ゲームオブジェクトをディアクティベートする
SetActive (false) を呼び出します
エラーをチェックするために
スクリプトを保存してUnity に戻りましょう
最初にやることは
Pickup プレハブの
Tag の値を設定することです
Prefabs フォルダーに移動し
Project ウィンドウの
Pickup プレハブをハイライトします
Pickup をハイライトしたままで
Inspector の最上部の Tag リストをクリックします
プロジェクトの一部として
Pickup のタグはすでに準備されていることが
分かります
 Tag を
追加する場合は
Add Tag を選択します

English: 
This opens the Tags And Layers panel.
Here we can hit the + button
to add a new tag to our
list of tags.
To delete a tag highlight it
and hit -
Next highlight the Pickup prefab
and let's assign the
Pickup tag to it
using the Tag menu.
Select Pickup.
Now through the power of prefabs
if we highlight a Pickup in
the hierarchy we'll see
that it too has
been tagged Pickup.
Now let's test our game.
Save the scene and enter play mode.
Okay, our tag is set to
Pickup but we're still colliding

Japanese: 
このようにして Tags & Layers パネルが開きます
+ ボタンを押すと
新しい Tag がリストに
加えられます
 Tag を削除するには、ハイライトして
－ ボタンを押します
次に Pickup プレハブをハイライトして
Tag メニューを使って
Pickup タグを
割り当てましょう
Pickup を選びます
さて、プレハブの利便性を使って
Hierarchy で 
Pickup をハイライトすると
それも Pickup と
タグ付けされていることが分かります
では、ゲームをテストしてみましょう
シーンを保存してプレイモードにします
タグは Pickup に設定されているのに
まだ、Pickup オブジェクトと

English: 
with the Pickup objects.
Just like we are with the walls.
So let's exit play mode.
Before we discuss why we are
bouncing off the Pickup objects rather than
picking them up we need to have a
brief discussion about Unity's physics system.
Let's look at one of our pickups
and our Player.
As an aside, we can select two or
more game objects at the same time
and inspect them all.
We do this by holding down the command key
on Mac or the control key on Windows
and selecting the game objects.
When we select multiple objects
note how the inspector changes
to show the common components
and property values of the selected game objects.
The inspector also allows for
multi-object editing.
Using multi-object editing
I'm going to disable the sprite renderer
on both the Player's UFO
and the selected pickup with a single click.
This leaves us with the two green

Japanese: 
衝突しています
まるで、壁のようです
プレイモードを終了しましょう
なぜPickup オブジェクトを取得せずにむしろ
跳ね返ってしまうのかを考える前に 
Unity の物理システムについて
簡単に説明します
Pickup と Player を
見てみましょう
余談ですが、複数のゲームオブジェクトを
同時に選択し
まとめて Inspector で見られます
これを行うには Mac で Commandキーを　
Windows ではCtrl キーを押しながら
ゲームオブジェクトを選択します
複数のオブジェクトを選ぶとき
Inspector がどのように変化して
選んだオブジェクトの共通コンポーネントと
プロパティー値を表示するかに注目してください
Inspector では
複数オブジェクト編集もできます
複数オブジェクト編集を利用して
プレイヤーの UFO と
選択した Pickup のスプライトレンダラーを
1 クリックで両方とも無効にします
これによって2 つのオブジェクトの 

Japanese: 
2D コライダーエリアの
緑色の枠が残ります
それでは、Unityの 2D 物理エンジンで
どのように衝突は作用するのでしょうか
2D 物理エンジンでは
2D コライダーのエリアが
互いに重なることはできません
前回、どうやって
Background スプライトの真ん中から Player を消したか
思い出してください
2D 物理エンジンが
フレームに複数の2D コライダーが
重なっているのを検知すると
2D 物理エンジンはオブジェクトを見て
そのスピード
回転、形を分析し
衝突を計算します
この計算の主要な因子の 1 つは
その 2D コライダーは静的か動的か
ということです
静的なコライダーは通常
シーンの動かない部分にあります
たとえば、壁、床
その他の風景部分などです
動的コライダーは動くものに使われます
たとえばプレイヤーの UFO や

English: 
outlines of the 2D collider
areas for these two objects.
So how do collisions work
in Unity's 2D physics engine?
The 2D physics engine does not
allow two 2D collider
areas to overlap.
Remember how the Player was ejected
from the middle of the background sprite
in our previous lesson.
When the 2D physics engine detects
that any two or more
2D colliders will overlap that frame
the 2D physics engine will look at the
objects and analyse their speed,
rotation and shape
and calculate a collision.
One of the major factors in this calculation
is whether the 2D colliders
are static or dynamic.
Static colliders are usually
none moving parts of our scene
like the walls, the floor,
or other parts of the scenery.
Dynamic colliders are things that move,
like the Player's UFO,

Japanese: 
車などのように
衝突の計算において
静的な形状は
衝突の影響を受けません
しかし、動的なオブジェクトは影響されます
私たちのケースでは、Player の UFO は
動的、つまり動く形状で　
Pickup の静的形状から
跳ね返ります
ちょうど、壁の静的な形状から跳ね返るのと
同じように
ただし、2D 物理エンジンでは
2D コライダーエリアの侵入や
重複が可能です
これらが起こっても 2D 物理エンジンは 
2D コライダーエリアを計算し
コライダーの重複を
追跡しつづけます
ただし、重複しているオブジェクト上では
物理的に動作しません
それは衝突を引き起こしません
ここでは、2D コライダーを
トリガーか2D Trigger コライダーに
することで実現します
コライダーをトリガーにすると

English: 
or a car.
When calculating a collision
the static geometry will not
be affected by the collision.
But the dynamic objects will be.
In our case the Player's UFO
is dynamic, or moving geometry,
and it is bouncing off the static
geometry of the pickups
just as it bounces off the static geometry
of the walls.
However the 2D physics engine
can allow the penetration
or overlap of 2D collider areas.
When it does this the 2D physics
engine still calculates the 2D
collider areas and keeps track
of the collider overlap
but it doesn't physically act
on the overlapping objects.
It doesn't cause a collision.
We do this by making our
2D colliders in to triggers,
or 2D Trigger Colliders.
When we make our colliders in to a trigger

English: 
we can detect the contact with
that 2D trigger through the
2DOnTrigger event messages.
When a 2D collider is a trigger
we can do clever things like
place a trigger in the middle of a doorway
in for example an adventure game,
and when the player enters the
mini map updates and a message plays
'you have discovered this room'.
Or every time our player walks
in to an area a sound plays
because the player has walked through a trigger.
For more information on 2DOnCollision
and 2DOnTrigger messages
see the lessons linked below.
We are using OnTriggerEnter2D in our code
rather than OnCollisionEnter2D,
so we need to change our collider
2D areas in to trigger areas.
Let's select the prefab asset
and look at the circle collider 2D component.

Japanese: 
その 2D トリガーとの接触は
2DOnTriggerイベントメッセージによって
検出されます
2D コライダーをトリガーにすると
気の利いた使い方ができます
例えば、アドベンチャーゲームで
トリガーを入口の真ん中に置き
プレイヤーが入るとミニマップが更新し
「あなたは、この部屋を発見しました」
というメッセージが出たり
または、プレイヤーがあるエリアに侵入するたびに
プレイヤーがトリガーを通過して
音が鳴ったりするなどです
2DOnCollision と2DOnTrigger メッセージ
に関する詳しい情報は
下のリンクを参照してください
ここでは OnCollisionEnter2D でなく
OnTriggerEnter2D を使用します
そのため、コライダー 2D エリアを
トリガーエリアに変更することが必要です
Prefab アセットを選択し
Circle Collider 2D コンポーネントを表示します

Japanese: 
ここで、2 つのスプライトレンダラーを再アクティベートし
Pickup プレハブをハイライトします
Circle Collider 2D コンポーネントに
Is Trigger というプロパティーがあります
これを True に設定しましょう
さて、プレイモードにしてテストしてみましょう
良いですね、プレイモードを終了します
ここまで、全部うまくいっていますが
1 つ問題があります
私たちは 1 つ小さなミスをしてしまいました
それは、Unity の 2D 物理計算の
最適化に関連しています
2D 物理計算を使用する場合
すべての静的、または動かないコライダーは
単体として
計算されます
こうすると、パフォーマンスが向上します
エンジンが動くことを予想していない
コライダーを動かすと
その静的コライダーや動かないオブジェクトを

English: 
I'm going to reactivate the two sprite renderers
and highlight the Pickup prefab.
In the Circle Collider 2D component
we see a property called Is Trigger.
Let's set this to True.
Now let's enter play mode and test.
Excellent, let's exit play mode.
So far everything looks great.
But we have one issue.
We've made a small mistake,
which is related to how Unity
optimises it's 2D physics.
When using 2D physics all
of the static, or non-moving
colliders are calculated as
a single body.
This increases performance.
If we move a collider that the engine
is not expecting to move
the static collider or all our

Japanese: 
再度計算する必要がでてきます
これをすべてのフレームで行うと
ゲームのパフォーマンスが悪くなる恐れがあります
アイテムを回転させることで
間違いをしてしまったのです
それらを動かす前に
どの 2D コライダーが動的であるかを 
Unity に示す必要があります
私たちは、それを
Rigidbody2D コンポーネントで行います
2D コライダーと Rigidbody2D をもつ
ゲームオブジェクトはすべて
動的とみなされます
2D コライダーを持ち 
Rigidbody2D をもたないゲームオブジェクトは
すべて静的とみなされます
現在 Pickup ゲームオブジェクトには
Circle Collider が設定されていますが 
Rigidbody2D はありません
そのため Unity は各フレームで
アイテムと壁のコライダーを
再作成します
解決するには Rigidbody2D を
Pickup オブジェクトに設定します

English: 
non-moving objects will have to be recalculated.
If we do this every frame we risk
our game losing performance.
Where we've made our mistake is
by rotating our pickups.
We need to indicate to Unity
which 2D colliders are dynamic
before we move them.
We do this by using the
rigidbody2D component.
Any game object with a 2D collider
and a rigidbody2D
is considered dynamic.
Any game object with a 2D collider
but no rigidbody2D
is expected to be static.
Currently our Pickup game objects
have a circle collider but
no rigidbody2D.
So Unity is recreating
the collider's for the pickups and walls
each frame.
The solution is to add a rigidbody2D
to the Pickup objects.

Japanese: 
プレイモードにしてテストしてみましょう
ご覧のように Pickup　が画面から落ちてしまいます
重力によって下に引っ張られるのです
しかも、トリガーであるため
壁と衝突しません
Rigidbody2D コンポーネントを見ると
Gravity Scale を 0 に
簡単に設定できたことに気づきます
それで Pickup が落ちることを
防げたはずです
ただし、これは部分的な解決策にすぎません
もし、そうしたとして Pickup が
重力に影響を受けなくなったとしても
まだ、物理的な力に
影響されていたでしょう
もっと良い解決法があります
それはIs Kinematic を有効にすることです
これを行うと
Rigidbody2D コンポーネントを
キネマティックの 2D Rigidbody にすることができます
キネマティック 2D Rigidbody は

English: 
Let's enter play mode and test.
As we can see, our Pickups fall off the screen.
Gravity pulls them down and
because they are triggers they
don't collide with the walls.
If we look at the rigidbody2D component
we see that we could simply set
Gravity Scale to 0,
which would prevent the Pickups
from falling downwards.
This is only a partial solution however.
If we did this even
though our Pickups would not respond to
gravity they would still respond
to physics forces.
There's a better solution.
That is to select Is Kinematic.
When we do this we set this
rigidbody2D component
to be a kinematic 2D rigidbody.
A kinematic 2D rigidbody

English: 
will not react to physics forces
and can be animated and moved
by it's transform.
This is great for everything from objects
with colliders like elevators and
moving platforms to objects
with triggers, like our collectables,
that need to be animated or moved
by their transform.
For more information on the rigidbody2D
and Is Kinematic
see the lessons linked below.
Let's save our scene and enter play mode to test.
Now our behaviour is identical
and performant.
So static 2D colliders shouldn't move,
like walls and floors,
dynamic 2D colliders can move
but should have a rigidbody2D attached.
Standard 2D rigidbodies like our
Player are moved using 2D physics forces.
Kinematic 2D rigidbodies are
moved using their transform.
In the next assignment we will count our
collectable objects and make a

Japanese: 
物理的な力に反応しませんが
Transform によって
アニメーションと移動を行えます
これは、すべてのオブジェクトに有効です
エレベーターや移動するプラットフォームなどのような
コライダーを持つオブジェクトから
作成中のアイテムのようにトリガーが設定され
Transform によって、アニメーションや
移動をするものまで OK です
Rigidbody2D と Is Kinematicに関する情報は
下のリンクのレッスンを
ご覧ください
シーンを保存し、プレイモードにしてテストしてみましょう
今度は、ビヘイビアは
思った通りになりました
静的な 2D コライダーは
壁や床のように不動で
動的 2D コライダーは動きますが
ただし Rigidbody2D がアタッチされるべきだったのです
この Player のような標準の2D rigidbody は
2D の物理的な力を使用して動きます
キネマティック 2D rigidbody は
transform によって動きます
次回は
アイテムを数え

English: 
simple UI to display
our score and messages.
Subtitles by the Amara.org community

Japanese: 
スコアとメッセージを表示する
簡単な UI を作成します
