*

[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

関連記事

Delgate Multi Thread

[C#]マルチスレッドとイベントハンドラでデータベースのテーブルの値の変更を検知する。

システム利用中にデータベースの内容が更新 こういったシステムは往々にしてあるかと思います。 特に

記事を読む

visualstudio_

[visual studio]ODBC等のConnection Stringの簡単な作り方

Connection Stringって大体いつも検索して、それを使ってみて、だめだったりOKだったり

記事を読む

Registry レジストリ C# .NET

[.NET, C#]レジストリの値が取得できない原因

正しいPathを指定しているのに 図のような 'HKEY_CURRENT_MACHINE\SO

記事を読む

Wannabenote

[Unity]Unity4.6 UIチュートリアル Lesson9.UI Scroll Rect 日本語要約

Unity関連まとめページはこちら→Unity Lesson8.UI Transition 日

記事を読む

logo

[Unity]Unity 2Dチュートリアル スプライトをドラッグ(タップ)して移動する ソース解説

◆全文 using UnityEngine; using System.Collection

記事を読む

PDFClearBlankToText

[C#, iTextsharp]PDFClearBlankToText PDFのテキストを読み込んで空白削除する

使用は自己責任でお願いします。 ◆概要 前回のBlankClearのあとにPDFからコピペが

記事を読む

socket p2p unity

[Unity]Socket通信でP2Pすっぞ ホストへ接続

前回はホストが待ちうけするところまで作りました。 今回はクライアントがホストへ接続できるように

記事を読む

logo

[C#]AS400のメンバーを指定してデータにアクセスする

◆前提条件◆ CliantAccessをインストールしている。 .NET Framework3.

記事を読む

Unity2_1

[Unity]Unity2Dチュートリアル スプライトを利用する

前回の続き。 早速、スプライトを設置して作っていきましょう。 ※スプライトとは スプライ

記事を読む

logo

[C#]AS400をDBに見立ててPCのPGMからODBC接続する

◆前提条件◆ PCにClient Accessがインストールされている。 PCに.NET Fra

記事を読む

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 ↑