投稿

ラベル(C#)が付いた投稿を表示しています

ゼロからはじめる Unity 基礎編 | Week 3 : 物理演算と銃

Week 3 では、C#スクリプトと物理演算を使って、銃弾を飛ばしてみます。 クラスとインスタンス 物理演算を試してみる Rigidbody と Collider 重力 弾を発射する GetComponent<T>() velocity 衝突判定 OnCollisionEnter(col) / OnTriggerEnter(col) 弾がものに当たったら消す Destroy(obj) 時間で弾を消す Destroy(obj, time) プレハブ機能 ドラッグ&ドロップ たくさん発射する GameObject型 Instantiate(obj) 弾数に制限を付ける private変数を使ってみる

ゼロからはじめる Unity 基礎編 | Week 2 : うごく箱

イメージ
Week 2 では、C#スクリプトを使って 箱の動きを制御 していきます。 (この記事は書きかけです) 2.1 C#スクリプトの準備 C#スクリプトでは、C#言語でプログラムを書くことで、Unity上に配置した オブジェクトを制御する ことができます。 たとえば…  スペースキーを押すとプレイヤーがジャンプする 1秒おきに敵がプレイヤーめがけて弾を撃ってくる などは、C#スクリプトで実現できます。 スクリプトの準備 まず C#スクリプトを作成 し、それを 動かしたいオブジェクトへアタッチ します。 C#スクリプトを作成する Project ウィンドウの Create から C# Script を選びます。 次に、C#スクリプト名を入力します。 C#スクリプト名は、かならず 半角英数 のみでつけます。 たとえば、プレイヤの制御につかうスクリプトなら「PlayerController」といった具合です。 スクリプトをアタッチする 次に、制御したいオブジェクトへスクリプトを アタッチ します。 アタッチするには、スクリプトを選択し、オブジェクトのInspector上へドラッグ&ドロップします。 作成したC#スクリプトをダブルクリックすると、Visual Studio が開き、プログラムを編集できるようになります。 2.2 プログラムを書くときの基本ルール まずは、既存のプログラムを打ち込んでみましょう。 一般に、プログラム文のことを ソースコード や コード と呼びます。 以下の説明でも、プログラムのことを「コード」と呼んでいきます。 スクリプトを作成して、半角英数で Circular という名前をつけます。 この Circular を適当なオブジェクトへアタッチしたあと、以下のように打ち込んでみてください。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Circular : MonoBehaviour { public float radius = 2; // 回転半径 public float sp...

Unity C# スクリプトの基本的な書き方 (1)

イメージ
Unity で C# スクリプトを書くチュートリアルです。 対象読者は「Unity を少しいじったことがあって、少しスクリプトも触ったけれどあまり慣れていない」という方です。 はじめに スクリプトファイルをつくると、最初に以下のようなスクリプトのひな形が用意されます。 これをもとにスクリプトを書いていきます。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move : MonoBehaviour { void Start() { } void Update() { } } ※以下のコード例では、 public class ... のくだりを省略して void Start() や void Update() のみを示します。 イベント関数 イベント関数 は、特別な関数名をつけておくことで 何かが起こったときにUnity側が実行してくれる関数 です。 スクリプトファイルを作成すると Start() と Update() というイベント関数が最初から用意されています。 たとえば Start 関数は、そのスクリプトを付けたオブジェクトが出現したときに実行されます。 よく使うイベント関数として、以下のようなものがあります。 ここではざっと眺めて「ふーん、そんなものがあるんだな」という認識でOKです。 Start オブジェクトが作成された直後に呼び出される(正確には作成後最初の1フレーム目) void Start() { ... } Awake オブジェクトが作成された直後に呼び出される(Start よりも先に呼び出されます) void Awake() { ... } Update 毎フレームに1回呼び出される void Update() { ... } FixedUpdate 常に一定間隔で呼び出される (物理演算と同期) void FixedUpdate() { ... } OnTriggerEnter, OnTriggerStay, OnTriggerExit 衝突判定が起きたときに呼び出される (詳しくは「衝突判定」で紹介し...