*

[Unity]コードリファレンス Componentを取得する。削除する。

公開日: : 最終更新日:2015/06/02 C#, Unity, ソース

コンポーネントを取得して削除します。

GetComponent

コンポーネントの追加と同じような使い方で、コンポーネントを取得します。

コンポーネントの削除

コンポーネントを取得して、
UnityEngine.Object.Destroyメソッドに引き渡すことで、削除が出来ます。

動くSphereを生成、二度目のクリックでコンポーネントを削除し止める。

まずは動くSphereのスクリプト。

using UnityEngine;
using System.Collections;

public class Moving : MonoBehaviour {

	private Vector3 _dir;
	private Vector3 PlusDir = new Vector3(3, 3, 0);
	private Vector3 MinusDir = new Vector3(-3, -3, 0);
	private float Speed = 0.1f;

	// Use this for initialization
	void Start () {
		_dir = PlusDir;
	}
	
	// Update is called once per frame
	void Update () {
		if(gameObject.transform.position.x >= 3) {
			_dir = MinusDir;
		} else if(gameObject.transform.position.x <= - 3) {
			_dir = PlusDir;
		}
		gameObject.transform.Translate(_dir * Speed);
	}
}

そしてボタンを押したときの処理。

public class Sample : MonoBehaviour {
	private GameObject _obj = null;

	public void CreateAndStop(){
		// ボタン一回目
		if(_obj == null) {
			_obj = GameObject.CreatePrimitive(PrimitiveType.Sphere);
			_obj.transform.localPosition = Vector3.zero;
			_obj.AddComponent<Moving>();

		// ボタン二回目以降
		} else {
			Object target = obj.GetComponent<Moving>();
			if(target != null){
				Object.Destroy(target);
			}
		}
	}
}

実行すると、クリック一回目でこうやって動いて、
unity moving

クリック二回目で止まります。

ちなみに二回目のクリックの処理を以下に書き換えると、止まったり動いたり出来ます。

	public void CreateAndStop(){
		/* 省略 */

		// ボタン二回目以降
		} else {
			Object target = obj.GetComponent<Moving>();
			if(target != null){
				Object.Destroy(target);
			} else {
				obj.AddComponent<Moving>();
			}
		}
	}

でも、それなら、スクリプトにストップメソッドを実装した方がいいです。

ad

関連記事

logo

[C#]システム関連付けのソフトでファイルを起動する

事の発端 PDFをAdobeReaderで開きたいといわれました。 コマンドラインでAdobeR

記事を読む

Unity_

[Unity]Unity2Dチュートリアル 画面上のGameObjectを左下から取得する

前回、画面上のオブジェクトを一括で手に入れる方法はわかりました。 しかし、これではどのオブジェクト

記事を読む

logo

[C#]パスワード暗号化プログラムの初歩

パスワード暗号化の初歩的方法。 子供だましみたいなプログラムですね。 これは入社四か月の頃にプロ

記事を読む

addcomp

[Unity]コードリファレンス コンポーネントをアタッチする。

コンポーネントをプログラム実行時に追加します。 AddComponent() AddComp

記事を読む

cropped-wannabenote_logo.png

[Unity]Unity4.6 UIチュートリアル Lesson11.UI Mask 日本語要約

Unity関連まとめページはこちら→Unity Unity4.6 UIチュートリアル Less

記事を読む

logo

[C#]BinaryFormatterでのDeserializeが遅い。遅すぎる。

概要 BinaryFormatterのサイズ的には大して変わらんとして、じゃあ速度的にはどうなのよ

記事を読む

logo

[Unity]コードリファレンス ソケット通信の開始して接続して切断する。

オンラインゲームを作るためにはソケット通信が必要です。 今回はいきなりソースから。解説は下の方に。

記事を読む

Unity_

[Unity]Unity2Dチュートリアル 直線で3つ同色のパズルを消去する ソース解説

◆全文 using UnityEngine; using System.Collection

記事を読む

logo

プログラミング言語の選択

最初のプログラミング言語っていうのは思い入れが深いもんです。 私はこんな感じ。 C言語 ↓ jav

記事を読む

VisualStudio_

[.NET,C#]visual studio communityで開発環境を作ってプログラムの実行まで

そういえば、visual studioのPro相当の開発環境、visual studio commu

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑