Unity

Unityでスコープ機能を実装する

投稿日:2020年3月16日 更新日:

今回やること

画像のようにキーをおしたらズームするようになります
照準の画像も通常時とズーム時で変わるようにします
フォートナイトみたいなゲームでよく使われますね

照準の作成

照準の画像が無い場合はこちらからダウンロードしてください

Create → UI → Imageをおします

作成したImageを選択し、座標を0,0,0にし、通常時の照準をSourceImageにドラッグ&ドロップします

続いて、同様にCreate → UI → Imageをおします

同様に作成したImageを選択し、座標を0,0,0にし、ズーム時の照準をSourceImageにドラッグ&ドロップします

ズームするようにプログラミングする

Scopeスクリプトの作成

Create → C#Scriptをおします

スクリプトの名前をScopeにし、ダブルクリックして編集画面を開きます

入力するスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Scope : MonoBehaviour
{
    private Camera cam;// ズームするカメラ
    public GameObject AimingA;// 通常の照準
    public GameObject AimingB;// ズームした時の照準

    // Start is called before the first frame update
    void Start()
    {
        cam = GetComponent();// Cameraの値を取得
        AimingA.SetActive(true);// 通常の照準を表示する
        AimingB.SetActive(false);// ズームした時の照準を非表示にする
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space))// もし、スペースキーがおされたら、
        {
            cam.fieldOfView = 20;// カメラのFieldOfViewを20にする
            AimingA.SetActive(false);// 通常の照準を非表示にする
            AimingB.SetActive(true);// ズームした時の照準を表示する
        }

        if (Input.GetKeyUp(KeyCode.Space))// もし、スペースキーが離されたら、
        {
            cam.fieldOfView = 60;// カメラのFieldOfViewを60にする
            AimingA.SetActive(true);// 通常の照準を表示する
            AimingB.SetActive(false);// ズームした時の照準を非表示にする
        }
    }
}

入力したらMainCameraにScopeスクリプトをドラッグ&ドロップします

MainCameraを選択し、AimingAには通常時の照準、AimingBにはズーム時の照準をドラッグ&ドロップします

テストプレイをすると

スペースキーをおしたら、照準が切り替わってズームし、離すと元に戻ります

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

このサイトについて

ここには、自己紹介やサイトの紹介、あるいはクレジットの類を書くと良いでしょう。

検索

-Unity

執筆者:


comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

保護中: 凹ませマニア

この投稿はパスワードで保護されているため抜粋文はありません。

Unityでメッセージウィンドウでの会話機能を作る

スクリプトを貼りけるための空のオブジェクトの作成 Create → CreateEmptyをおします 名前をMessageControllerにします 会話機能のスクリプトの作成 Messageという …

no image

【Unity】少し遅れて移動、回転するオブジェクト【電車の動き】

実装したいこと 動画のように前の車両に遅れてついていく電車を作成します シューティングのサブ機とかにも使えそうですね ※今回の記事は自分へのメモ用ですので説明は割愛しています ご了承下さい https …

no image

XCodeビルド一時メモ

AppDelegate.swiftに貼るやつ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? …

no image

EffecSeerを使ってゲーム用のエフェクト作りに挑戦

さて、EffecSeerというソフトを使ってゲーム用のエフェクト作りに取り組みました このソフト、数値をいじったり、テクスチャを貼り付けたり、更には3Dモデルを読み込んだりと色んな技を使ってエフェクト …

ゲタバコ倶楽部へようこそ

  • 300743総閲覧数:
  • 26今日の閲覧数:
  • 231535総訪問者数:
  • 22今日の訪問者数:

住所
Akita,Japan

営業時間
月~日: 10:00 AM – 10:00 PM

このページはゲタバコ先生の日々思うことや活動、プログラミングの習得方法を発信するページです。
仕事のご依頼、メッセージ等、サービス概要をご覧の上で、お気軽にご連絡ください。

getabakosensei@gmail.com