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

==========

Unity用の3Dモデルを探してる方、欲しい方ご注目!

自作のUnity用3Dモデルをリーズナブルな価格で販売してますので、以下のリンクより一度ご覧ください。

Unity用3Dモデルを見てみる

==========


スポンサードサーチ

関連記事

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

unityで弾の発射位置をコントロールする方法

どうも、大石です。 あなたはunityで弾の発射位置を自由に コントロールしたいですか?   この記事を読めばあなたの好きな位置から 弾を発射できるようになりますよ。   スポンサ …

no image

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

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

no image

unityでprefabを複製する(スクリプトで)方法

どうも、大石です。 あなたはunityでprefabをスクリプトで複製 したいですか?   この記事を読めば、あなたはprefabをスクリプトで 複製できるようになります。   な …

no image

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

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

no image

unityでoculus questの開発をしたい方必見!手順まとめました

どうも、チャーさんです。   あなたはunityでoculus questの 開発をしたい、そう思ってませんか?     この記事ではunityでoculus quest …

no image

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

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

no image

unityでボタンクリックで他のオブジェクトの色を変更するスクリプト

どうも大石です。   あなたはunityでボタンをクリックしたら、 他のオブジェクトの色を変更するという スクリプトを書きたいですか?     この記事を読めば、あなたは …

no image

unityでマウスの座標を取得する方法(超簡単です)

どうも、大石です。   あなたはunityでマウスの座標を取得したい ですか?   この記事を読めば、あなたはすぐに マウスの座標を取得できますよ。   スポンサードサー …

no image

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

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

no image

unityで敵を索敵する方法

どうも、大石です。   あなたはunityでプレイヤーが敵を索敵する 機能をつけたいですか?   この記事を読めば、敵を索敵する 機能を簡単に作れますよ。   ということ …

最新記事

チャーさん

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

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

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