Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!

unity

unityでコンポーネントを取得する方法を詳しく解説

投稿日:

Pocket

うも、チャーさんです。

あなたはunityでコンポーネントを取得する方法を

探していますか?

 

この記事ではコンポーネントを取得する方法、

その際の変数宣言の書き方や、

コンポーネント名の見つけ方など、

 

コンポーネント取得に関して必要なことを網羅的に

書いてます。

 

 

なのでこの記事を読めばあなたは、

コンポーネント取得で困らなくなるでしょう。

 

ということでunityでコンポーネントを取得したいなら

このまま読んでみてください。

 

スポンサードサーチ

unityでコンポーネントを取得する方法

 

unityでコンポーネントを取得する方法は、

GetComponent<取得したいコンポーネント名>();という

unityで用意されてる関数を使えばokです。

 

その理由ですが、

 

この関数を使うことで、

unityがそのオブジェクト(スクリプトがついてるオブジェクト)

につけてるコンポーネントを取得できるからです。

 

 

書き方の具体例

 

で、この関数の書き方としては、変数宣言をした後に

変数名 = GetComponent<取得したいコンポーネント名>;

とMono Developなどのエディターに書けばokです。

 

具体例を出しますと、

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ここはクラス名 : MonoBehaviour {

    public Animator animation; ←ここで変数型と変数名を宣言

     ↑変数型 ↑変数名

void Start () {
        animation = GetComponent<Animator> ();

   ↑ここでアニメーションのコンポーネントを取得

}

 

みたいなように書くと、

アニメーション情報(コンポーネント)を取得し、

animation変数に格納することができます。

 

コンポーネントを取得する際の変数宣言について

 

コンポーネントを取得する際には、

変数に格納することが多いです。

 

がコンポーネント取得の際の変数宣言

どう書けばいいかわからん、、と

疑問があるかと思いますので、そこに答えます。

 

 

でまず変数宣言の前提として

Unityでは、Public か Private 変数型 変数名

と書いて変数宣言します。

 

先ほどの例

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ここはクラス名 : MonoBehaviour {

    public Animator animation; ←ここで変数型と変数名を宣言(これです)

     ↑変数型 ↑変数名

}

 

変数宣言してますね。

 

でさらに、コンポーネント取得の際の変数型は取得したい

コンポーネントに対応した変数型を書く必要があります。

 

 

例えば、オブジェクトについてる

アニメーションコンポーネントを

取得したい場合、

 

 public Animator animation; のように

変数型のとこにAnimatorと書きます。

 

このようにコンポーネントに対応した変数型

を書く必要があるのです。

 

 

その理由はそういう仕組みになってるからです。

これはそう受け止めてください。

 

で、その変数型なんて書けばいいかわからん、

となると思いますので解決策を言います。

 

Inspectorをみましょう。

 

 

以下はInspectorの画像です。

Inspector画面

 

上からTransform、Animator、Knight、Box Collider

などと書いてますよね。

これらを変数型のとこに書けばいいのです。

 

例えばアニメーションコンポーネント用の変数宣言なら

Public Animator 変数名;

 

コライダーコンポーネント取得用の変数宣言なら、

Public Box Collider 変数名;

と書いて変数宣言すればいいです。

 

 

このように変数型をなんて書けばいいか

問題の答えはInspector上にのってます。

 

なので変数宣言の際はInspectorをみましょう。

 

 

コンポーネント名がわからない場合

 

で、GetComponent<取得したいコンポーネント名>();

でコンポーネントは取得できるのですが、

 

取得したいコンポーネント名とか

言われてもなんて書くのかわからない

という場合に向けて答えを書いときます。

 

 

内容がダブりますが、

このコンポーネント名は全部、

Inspectorに書いてあります。

 

なのでInspectorを見れば解決です。

 

 

ということで下の画像を見てみてください。

Inspector画面

先ほどと同じ画像ですが、

 

上からTransform、Animator、Knight、Box Collider

とコンポーネント名が書いてあります。

 

 

なのでこれを、

GetComponent<取得したいコンポーネント名>();

の取得したいコンポーネント名のとこに書けばOkでして、

 

例えばアニメーション情報を取得したいなら

 GetComponent<Animator> ();

と書けばいいですし、

 

コライダーの情報を取得したいなら、

 GetComponent<Box Collider> ();

と< >の中に書けばいいのです。

 

 

そうすればそのコンポーネントを

取得できますので、コンポーネント名問題は、

Inspectorをみて解決してください。

 

 

スポンサードサーチ

unityでコンポーネントを取得する理由は?

 

で、ちなみになんでそもそも

コンポーネントを取得する必要があるんだ?

と疑問に思ったかもしれませんので、補足します。

 

結論から言えば、取得するのは、

コンポーネントを操作するのに、

まず取得という行為が必要だからです。

 

 

あなたもご存知の通りunityではスクリプトを使えば、

色々自由にオブジェクトやコンポーネントを

操作できます。

 

例えばパソコンのキーボードのAボタンを

押した時にプレイヤーが剣で攻撃する、

アニメーションを発動させるみたいなことができます。

 

 

で、そういったような操作をするときに、

unityではまずは動かしたい要素を

取得する必要があるのです。

 

 

あなたが触ったことがあるかわからないですが、

イメージとしてはJavascriptのDOMに似ています。

 

あれもまずは操作したい要素(pタグとか)を取得して、

それで好きなように操作(ボタンを押したら色を変えるとか)

するという仕組みです。

 

 

unityのスクリプトもそういう仕組みで

色々オブジェクトやコンポーネントを

操作していくので、

 

まずはコンポーネントを取得する

必要があるのです。

 

そうすれば、キーボードの操作で

攻撃アニメーションをするとか、

色々ゲームちっくなこともできます。

 

 

というわけでそもそもコンポーネントを取得する

理由はオブジェクトやコンポーネントを操作するために

必要なので、それを理解しておきましょう。

 

スポンサードサーチ

まとめ

 

というわけでまとめです。

 

unityでコンポーネントを取得したければ、

GetComponent<ここに取得したいコンポーネント名>();

を使いましょう。

 

そうすればあとはそのコンポーネントを

unityで用意されてる他の関数で、

操作すれば色々スクリプトで操作できます。

 

 

変数型やコンポーネント名はInspector上に

書いてます。迷ったらそこをみましょう。

 

でコンポーネントを取得したら

次はスクリプトで色々操作をすることが

できます。

 

 

ですが具体的な操作の方法に関しては、

また別記事に書こうと思うので、

書いたらここにリンクを乗せておきます。

 

それでは読んでもらってありがとうございました。

 

チャーさん

 

-unity

スポンサードサーチ

関連記事

no image

unityでキー入力で攻撃する方法(3分以内にできます)

どうも、チャーさんです。   あなたはunityでキー入力による攻撃を したいですか?   この記事ではunityでキー入力で攻撃を する方法を書いてますので、あなたがこれを読めば …

no image

unityで地形を作る方法「初心者でもできるように丁寧に説明してます」

どうも、チャーさんです。   あなたはunityでいい感じの地形を作りたい。 でも、やり方がわからない。と悩んでいませんか?   この記事では、unityで地形を作る方法を、 ステ …

no image

unityでのダンジョンの簡単な作り方(コードコピペで作れます)

どうも、チャーさんです。   あなたは、unityでダンジョンを作りたいと 思っていませんか?   この記事ではunityでのダンジョンの作り方を 説明してまして、本記事を読めば …

no image

unityアセットの使い方を初心者でもわかるように説明。

  どうも、チャーさんです。   あなたはunityのアセットの使い方が、 わからず困ってませんか?   この記事ではunityのアセットの使い方を、 1から説明してます …

no image

unityで矢印キーでオブジェクトを移動させるには(3d)

どうも、チャーさんです。 あなたはunityで矢印キーで3dオブジェクトを 移動させたいですか?   この記事では矢印キーによる3dオブジェクトの 移動を実現する方法を書いてるので、 読めば …

no image

unityで敵に近づくと追いかけてくるコードとコードの解説記事

どうも、チャーさんです。   あなたはunityで敵に近づくと、 プレイヤーを追いかけてくるという機能を つけたいと思っていませんか?   この記事ではそれを実現するコードと方法や …

no image

unityでオブジェクトをスクリプトで削除する方法

どうも、チャーさんです。   あなたはunityでゲームオブジェクトを、 スクリプトなどから削除したいですか?   この記事では、関数を使い、 ゲームオブジェクトを削除する方法を書 …

no image

unityで他のオブジェクトを取得する方法

どうもチャーさんです。   あなたはunityで他のオブジェクトを 取得したいがわからず困ってますか?   この記事では、unityで他のオブジェクトを 取得する方法を書いてます。 …

no image

unity上でblender作成モデルが透ける時の解決法

どうも、チャーさんです。   あなたはunityにblenderで作ったモデルを 持ってきたものの、面が透ける現象が起こって 困っていませんか?     この記事は、透け …

no image

unityでカメラを追従させる簡単なコードと方法の説明をする記事

  どうも、チャーさんです。   あなたはunityでカメラの追従をさせたい、 こう思ってませんか?   この記事ではオブジェクトをカメラで追従させる、 (カメラが追いか …

no image

unityでターン制のゲームを作るにはコレを使いましょう

どうも、チャーさんです。 あなたはunityでターン制ゲームを作りたい そう思っていませんか?   この記事ではunityでターン制のゲームを 作る方法を書いています。   なので …

no image

unityで攻撃に当たり判定をつける方法

どうも、チャーさんです。 あなたはunityで攻撃に当たり判定をつけたいですか?   この記事では、当たり判定をつける 方法を書いてるので、読めば当たり判定をつけれます。   とい …

no image

blenderで作ったモデルをunityにインポートする方法「簡単です」

どうも、チャーさんです。   あなたはblenderで作ったものを、 unityで表示(インポート)したいと、 思っていませんか?   この記事では、あなたが作ったblenderの …

no image

unityで敵を移動させる方法(詳細にわかりやすく説明します)

どうも、チャーさんです。   あなたはunityで敵を移動させたい、 そう思っていませんか?   コライダーなどでもできるが、他の方法が ないかと探してませんか?   & …

no image

unityでオブジェクトを回転させる方法「1分でできます」

どうも、チャーさんです。   あなたはunityでオブジェクトを回転させたいですか?   unityでゲームなど作るとオブジェクトを 回転させたい場面がありますよね。   …

最新記事

チャーさん

プログラミング・筋トレ・unity系の記事などを書いてます。

大学卒業後→開業→個人事業主7年目ぐらいです。webサイト制作したり、unityでゲーム開発しております。

youtubeもやってまして、主にプログラミング動画とかunity系の動画をあげてるので見てください。