転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

Unity

【Unity】一定間隔で弾を撃ち続けるスクリプト

// 弾を撃つ間隔 public float shotDelay = 3.0f; // Use this for initialization IEnumerator Start () { rb = GetComponent<Rigidbody2D>(); while (true) { shot(); yield return new WaitForSeconds(shotDelay); } } private void shot() { // プレハブ生成 Instanti</rigidbody2d>…

【Unity】キャラクターを自動で左右に移動させるスクリプト

// 移動速度 public float speed = 2.0f; // Rigidbody private Rigidbody2D rb; // Use this for initialization void Start () { rb = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update () { // 移動 move(); } private void move() { r</rigidbody2d>…

【Unity】ジャンプ処理

// ジャンプの力 public float jumpPower = 40; // ジャンプ中判定 private bool isJump = false; // 接地判定 private bool isGround = false; // Update is called once per frame void FixedUpdate () { // Playerの移動速度、方向をセット setMoveDirect…

【Unity】UI上のボタンでオブジェクトを操作する方法

1.UI / Buttonオブジェクトを作成する。 2.作成したButtonオブジェクトに、Event Triggerコンポーネントをセットする。 3.スクリプトは下記の通り。 public class Controller : MonoBehaviour { // 移動速度 public float moveSpeed = 3.0f; // 変数用移動速…

【Unity】OnCollisionEnterの接触判定

ColliderコンポーネントのIsTriggerチェックは外しておく。 // コライダーとの接触判定 private void OnCollisionEnter(Collision other) { if(other.gameObject.tag == "Controller") { Destroy(gameObject); Destroy(other.gameObject); } }

【Unity】オーディオソースをソースコードで制御し、鳴らす方法

AudioSourceコンポーネントをアタッチし、AudioClipにアタッチしておく。 private AudioSource shotSound; void Start () { shotSound = GetComponent<AudioSource>(); } void shot() { shotSound.Play(); }</audiosource>

【Unity】BGMを鳴らす方法

Main CameraのAudio Sourceコンポーネントに、オーディオソースをアタッチする。・Loopにチェックを入れる。・Play On Awakeにチェックを入れる。

【Unity】GameObjectをn秒後に削除する方法

public float lifeTime = 3.0f; void Start () { Destroy(gameObject, lifeTime); }

【Unity】プレイヤーの移動範囲を画面内に制限する方法

void Clamp() { // 画面左下のワールド座標をビューポートから取得 Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0)); // 画面右上のワールド座標をビューポートから取得 Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1,…

【Unity】ゲームスタートからの秒数をUIに表示し、記録をつけるスクリプト

public class GameManager : MonoBehaviour { public Text time; public Text highTime; private int seconds; private void Start() { StartCoroutine(CountTime()); } // Update is called once per frame void Update () { time.text = "時間:" + second…

【ゲーム開発記】赤いボールを撃ち落とせ①

unityroomにあげる用のゲームを作り始めた。ちなみに前回unityroomに投稿したゲームは、閲覧数が100を超えてた。作ったゲームが実際に遊んでもらっていることが分かったので、非常にうれしい。 赤いボールからひたすら逃げろ | 無料ゲーム投稿サイト unityro…

【Unity】マウスをクリックしたら、弾を発射する方法

public GameObject bullet; // Update is called once per frame void Update () { if(Input.GetMouseButtonDown(0)) { shot(); } } void shot() { Instantiate(bullet, transform.position, transform.rotation); } ちなみに、弾の方のスクリプトは以下。 p…

【Unity】GameObjectをキーボードで操作する方法②

public float speed = 10; Rigidbody rb; void Start () { rb = GetComponent<Rigidbody>(); } // Update is called once per frame void Update () { float x = Input.GetAxisRaw("Horizontal"); float y = Input.GetAxisRaw("Vertical"); Vector2 direction = new Vec</rigidbody>…

【Unity】シーンの再読み込み方法

>|cs| // 現在のシーン番号を取得 int sceneIndex = SceneManager.GetActiveScene().buildIndex; // 現在のシーンを再読込する SceneManager.LoadScene(sceneIndex); ||

【Unity】ハイスコアの保存と表示

// ハイスコアを更新 if(PlayerPrefs.GetInt("HighScore") < allSeconds) { // ハイスコアの保存 PlayerPrefs.SetInt("HighScore", allSeconds); } // ハイスコアの呼び出し highScore.text = "HIGH SCORE:" + PlayerPrefs.GetInt("HighScore"); // 変更され…

【Unity】Prefabから自動生成する際、生成位置をランダムにする方法

Vector3 vector3; public void createEnemy() { vector3 = new Vector3(Random.Range(-5.0f, 5.0f), transform.position.y, transform.position.z); // Enemyを作成する GameObject enemy = (GameObject)Instantiate(enemyOrigin, vector3, Quaternion.ident…

【Unity】Prefabからゲームオブジェクトを自動生成する方法

1.GameObjectを作成し、以下スクリプトをアタッチする。 public class Emitter : MonoBehaviour { // Enemyプレハブを格納する public GameObject enemyOrigin; public void createEnemy() { // Enemyを作成する GameObject enemy = (GameObject)Instantiate…

【Unity】秒数をカウントし、UIに表示する方法

1.GameObjectを作成し、以下のスクリプトをアタッチする const int RecoSeconds = 10; // Textオブジェクト public Text time; private int seconds = 0; // Update is called once per frame void Update () { // UI time.text = "TIME:" + seconds; // sec…

2つめのiOSアプリをリリースしようとしたら、4.3リジェクトを食らってしまった話

何より数が大事だと思い、クオリティーは気にせずiOSアプリをガンガンリリースしていこうと思い、さっそく2つめのiOSアプリを審査に出したところ、4.3 Design: Spamなるリジェクトを食らいました。で、この「4.3 Design: Spam」の内容を調べてみたところ、か…

【Unity】ゲームオブジェクトを自動で動かし、オブジェクトに当たると反射する方法

動かしたいオブジェクトに、Physics Materialをアタッチする。 以下スクリプトをアタッチする。 // 移動速度 public float speed = 5.0f; // Rigidbodyコンポーネント Rigidbody rb; // Use this for initialization void Start () { // Rigidbodyコンポーネ…

【Unity】衝突時、ゲームオブジェクトを削除する方法

private void OnTriggerEnter(Collider other) { // 地面に衝突したら自オブジェクト削除 if(other.gameObject.tag == "Ground") { Destroy(gameObject); // Playerと衝突したら、自オブジェクトとPlayerオブジェクトを削除 } else if (other.gameObject.tag…

【Unity】Rigidbodyをアタッチしても、重力の変化を受けなくする方法

Use Gravityのチェックを外す。

【Unity】自オブジェクトのコンポーネントを取得するスクリプト

GetComponentコンポーネント名> // Rigidbodyコンポーネント Rigidbody rb; // Use this for initialization void Start () { // Rigidbodyコンポーネントの取得 rb = GetComponent<Rigidbody>(); }</rigidbody>

【Unity】シーンの重力変化

シーンの重力は、Editor / Project Settings / Physicsから確認できる。 この重力を変化させるスクリプトは、以下。 // 重力加速度 const float GravityF = 9.81f; // 重力の適用具合 public float gravityScale = 1.0f; // Update is called once per frame…

【Unity】Unityエディター上で行う操作と、実機で行う操作の処理を分ける場合

携帯の加速度センサーを使った処理を実装する場合、Unityエディター上で操作できなくなってしまう。 携帯で操作する場合は加速度センサー、Unityエディター上でだけキーボードで操作するといったように処理を分ける場合は、 // Unityエディター上で操作を行…

【Unity】Is Triggerについて

Is Triggerとは Colliderコンポーネントの設定の一つ。チェックを入れると、物理的接触が発生せずにすり抜ける。代わりに、トリガー(OnTriggerEnterなどのイベントメソッドが呼び出される)が発生する。 物理的接触を発生させながら、トリガーも発生させた…

【Unity】シーンの再読み込み方法

// 現在のシーン番号を取得 int sceneIndex = SceneManager.GetActiveScene().buildIndex; // 現在のシーンを再読込する SceneManager.LoadScene(sceneIndex);

【Unity】非アクティブなゲームオブジェクトをアクティブにする方法

public GameObject testObject; testObject.SetActive(true);

【Unity】指定したゲームオブジェクトをカウントし、画面に表示させる方法

1.新規でGameObjectを作成し、以下のようなスクリプトをアタッチする。 public class GameController : MonoBehaviour { public Text scoreLabel; public GameObject winnerLabelObject; public void Update() { int count = GameObject.FindGameObjectsWith…

【Unity】Canvasを使ったUIの追加方法

1.UI / Canvas を作成する。 2.Render ModeからScreen Space - Cameraを選択。 3.Render CameraにMain Cameraをドラッグ&ドロップ。 4.Canvas Scaler / UI Scale Mode をScale With Screen Sizeに設定する。 5.Reference Resolutionに画面サイズ(解像度)…