Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9366

【Unity】newってなに?? newが必要なシチュエーションまとめ

$
0
0

環境

Unity 2019.3.7f1

はじめに

ネットでコードを検索していると new がついているコードありますよね??
今回は、
 ・newとは何か?
 ・newが必要なシチュエーション
を私がわかっている範囲でまとめておきます。

newとは何か?

まずnewですが、
インスタンスを作る演算子
です。

new 型名();

でその型名のインスタンスを作成することができます。

設計図の状態から実体を持たせるらしいです。(雰囲気しかわかってない)

newが必要なシチュエーション

今私が把握しているのは次の4つです。
・空のゲームオブジェクトを作るとき
・自分で作ったクラスを使うとき
・配列を使うとき
・構造体(Vector3やVector2など)を使うとき

※もとから作られているC#のクラスはnewでインスタンス化できないらしい

コード例

・空のゲームオブジェクトを作るとき

usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclasstest:MonoBehaviour{voidStart(){newGameObject();//空のオブジェクト作成 括弧内に文字列を入れることでオブジェクトの名前を指定できる}}

 
・自分で作ったクラスを使うとき

usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;//ABCという名前のクラス作成publicclassABC{//関数作成publicvoidMoji(){Debug.Log("newって難しい");}}publicclasstest:MonoBehaviour{ABCa;//作成したクラスABC型の変数aを宣言voidStart(){a=newABC();//変数aにABCクラスのインスタンスを作成a.Moji();//ABCクラスのMoji()関数を実行}}

 
・配列を使うとき

usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclasstest:MonoBehaviour{privateint[]a;//int型の配列を変数aで宣言voidStart(){a=newint[3];//配列を作りint型の配列変数aに入れる//配列 a[0]=0, a[1]=1, a[2]=2 にするfor(inti=0;i<3;i++){a[i]=i;Debug.Log("a["+i+"]="+a[i]);}}}

 
・構造体(Vector3やVector2など)を使うとき

Vector3
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclasstest:MonoBehaviour{voidStart(){//このスクリプトがアタッチされたオブジェクトの位置を(1,2,3)へ変更transform.position=newVector3(1,2,3);}}

 

Vector2
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclasstest:MonoBehaviour{voidStart(){//このスクリプトがアタッチされたオブジェクトの位置を(10,20,0)へ変更transform.position=newVector2(10,20);}}

おわりに

空のゲームオブジェクトを作ることは実際やらないと思うので、

・自分で作ったクラスを使うとき
・配列を使うとき
・構造体(Vector3やVector2など)を使うとき

の3パターンの場合、newするってのを覚えておけば開発に問題無いと思ってる私です。

そのうち深く理解できることを信じて今日も開発!!


Viewing all articles
Browse latest Browse all 9366

Latest Images

Trending Articles