【Unity基本】変数の型とショートカット

変数とは?

変数って何?

データを保存しておける箱だね。例えば引っ越しする時に、段ボールに荷物を入れるよね?その時に段ボールに何を入れたか段ボールに書くでしょ?

そりゃあ名前書かないとわからなくなっちゃうから当たり前だよね

変数も同じさ。変数に何らかのデータを入れる。その変数の名前に、関連する名前をつける。ただそれだけのこと。変数には色々な型があるよ

変数の型

  1. int型
    整数…少数点を含まない数字だね 例:1、10、222、-100、1000000
  2. float型
    少数を含む数字…小数点を含む数字 例:1.3、10.555、222.5555、-100.8785、0.0002
  3. bool型
    真偽値に使う0と1だけの型… 0 or 1(true または false)
  4. string型
    文字列を格納できるよ 例:Unity学習中
  5. object型(object型はC#においてすべての型の基底型)
    すべての型(int、string、Listなど)を 代入することができる。「何でも入れられる」便利さの反面、型安全性が低く、使い方を間違えるとバグの温床に
  6. var型
    暗黙的な型指定(任意な型)を入れてくれるよ

めっちゃあるじゃん。これ全部覚えるの?

覚えるっていうのはナンセンスな考え方だよ。使っていく中で自然と扱えるようになるのさ

そうは言うけどさぁ……それが出来たら苦労しないんじゃない?

ほらほら、文句言わずに試してみるよ。scriptファイルの作り方と適用の仕方はわかっているよね?scriptファイルに入力してみよう。public class ball のところは、各自が作ったファイル名に変更してね (例:scriptの名前test → public class test)


using UnityEngine;

public class ball : MonoBehaviour
{
    void Start()
    {
        int num1 = 11;      // int型として型指定
        string name1 = "マジか"; // string型として型指定
        float price1 = 10.12f;  // float型として型指定
        bool isOK1 = false;   // bool型として型指定

        var num2 = 10;           // int型として推論される
        var name2 = "Hello";     // string型として推論される
        var price2 = 19.99;      // double型として推論される
        var isOk2 = true;        // bool型として推論される

        object price3 = price1 + price2; // float型とdouble型を計算(doubleはfloatより扱える桁数が多いので、計算結果はdouble型が代入される)
        object num3 = num1 * price2;   // int型とdouble型を計算

        print(num1);
        print(name1);
        print(price1);
        print(isOK1);
        print(num2);
        print(name2);
        print(price2);
        print(isOk2);
        print(price3);
        print(num3);
    }
}

float型の時は数字の最後にfをつけて、float型だってわかるようにつけてあげなきゃいけないから注意が必要だよ。また計算する場合は、多くの桁数を扱える型に自動的に格納される(例:floatとdoubleならdoubleになる)

ちょっと入力するの多すぎない?

そうだね。大変だよ。だからショートカットを便利に使っていこう。代表的なものを紹介するよ

便利なショートカットキー

コピー&ペースト

[Ctrl+c]でその行を一列そのままコピーできるよ。[ctrl+v]で貼り付けだね

変数や単語のみをてっとり早く選択

これはとても簡単だね。選択したい対象の上で[マウスの左ダブルクリック]するだけだ

コードの並び順の変更

[Alt+↑or↓]で簡単に移動できるよ

複数行を一度に修正

[Shift+Alt]を押しながら方向キーで、一度に変更可能だよ

便利なショートカットがいっぱいだね!ほかにも便利なショートカットがあるか、後で確認しよっと!

出力結果

よくわかんないけど正しく出力出来てるなら型はvarとobjectで全部事足りない?

varとobjectにはリスクが存在するんだよ

安全に使うためのポイント

  • varは「右辺から明確に型が分かるときだけ使う」のがベスト。

  • objectは「本当に型を抽象化する必要があるときだけ使う」。

  • 型安全性が重要な場合は、明示的な型指定を優先。

  • objectを使うよりは、ジェネリック型(例:List<T>)やdynamicを検討した方が安全な場合もある。

つまりどういうことだってばよ?

最初は明示的に使っていこう。整数ならint、小数点ありならdoubleってね。便利だからって何も考えずにvarやobject、dynamicを乱用してしまうとバグの発生が高くなってしまうのさ

変数の名前のつけかた

変数の名前ってどうやってつければいいの?例えば、プレイヤーのHPを表す場合はどんな名前になるの?

プレイヤーのHPなら、playerHpとかplayerHealthとかだね。変数名から、どんな役割を持つ変数かわかりやすいだろ?

playerHpのHが大文字なのは何でなの?

どこで区切って読めばいいか判断しやすいからね。名前ならplayerNameになるわけだ

なるほど。確かに区切って読む場所を、大文字で表すのは理にかなってる!ところで、変数名に日本語で名前をつけることはできないの?

いいところに気付くじゃないか。これはもうはっきりしてるんだけどね。個人でunityを使うなら日本語の変数はありだ。会社に所属しているなら、日本語で変数に使うのはやめたほうがいい

日本語変数名のメリット

メリット 説明
意味が伝わりやすい 特に日本人チーム内では、「意味のある名前」がすぐに理解できる。例:合計金額氏名 など。
ドメイン知識に近い表現ができる 業務用アプリ(会計、医療など)で使う専門用語をそのまま変数名にでき、理解が直感的になる。
教育や初心者向けに有効 プログラミング初心者に対して、英語よりもハードルが低くなる。

日本語変数名のデメリット

デメリット 説明
可搬性が低い(国際化に不向き) チームに外国人がいる場合や海外展開を考えると大きな障壁になる。
文字化け・エンコーディング問題 古いエディタやツールでは文字化けする可能性がある。特に外部連携時に問題になりやすい。
一貫性が乱れやすい 英語と日本語が混在して、コードの一貫性が失われやすい。例:userName氏名が混在するなど。
IDEや補完機能との相性が悪いことも 日本語IMEの切り替えや予測変換で補完がスムーズでない場合がある。
コミュニティや公開コードで不利 GitHubなどでコードを公開する場合、グローバルで通用しにくい。

日本語変数 どう使うべきか?

ケース 推奨方針
チームが日本人中心・ローカル開発 限定的に日本語を使うのも可。特に教育や社内ツールでは効果的。
商用製品・OSS・国際チーム開発 英語変数名を使うべき。国際化とメンテナンス性重視。
コメントやドキュメントで日本語を使う 強く推奨。コード内は英語、説明は日本語という使い分けが現実的。

個人なら日本語名の変数もOKかぁ……

初学者のうちは日本語を使ったほうが、すっと理解できるとはボクも思うよ

英語の変数名と日本語の変数名の比較

英語変数名 日本語変数名 説明(用途など)
totalAmountIncludingTax 税込合計金額 税込みの総合計金額
numberOfRegisteredUsers 登録ユーザー数 登録済みユーザーの人数
isCustomerAccountActive 顧客アカウント有効 アカウントが有効かどうか(bool)
invoiceIssueDateTime 請求書発行日時 請求書を発行した日付と時間
maximumAllowedLoginAttempts 最大ログイン試行回数 ログインの最大試行回数
productCategoryDisplayName 商品カテゴリ表示名 商品カテゴリ名(画面表示用)
employeeDepartmentAssignmentHistory 社員部署配属履歴 社員の部署配属履歴(ログや履歴用)
customerSupportInquiryResponseStatus 問い合わせ対応状況 顧客からの問い合わせの対応状況
scheduledSystemMaintenanceStartTime 保守開始予定時刻 システム保守の開始予定時間
isEmailVerificationCompletedSuccessfully メール認証済み メール認証が成功したか(bool)

英語の変数名みてたらイライラしてきました

プログラムが長くなればそれだけ沢山の変数を使うことになるからね。変数名も長くなっていくのさ。日本語の変数名は一瞬で意味が理解できるだろ?

うん。漢字の偉大さを再認識しちゃった

正直、最初のうちは色々なことに躓きやすいんだ。なので出来るだけ負担を軽くするために日本語の変数名を使っていくことにするよ。色々と理解できたら、英語の変数名を使うことだって抵抗はなくなるはずさ

今回はボリュームいっぱいだったなぁ。しっかりと復習しなきゃ!

変数は基本のキだよ。しっかりと理解しよう。次は繰り返しや条件式でもやってみようか。今回もお疲れ様でした

次のページ

【Unity基本】演算子
演算子は沢山あるちょっと長いよ……覚える必要はないけど、こんなものがあるんだなって感じで目を通してね算術演算子演算子説明使用例結果(例)+加算3 + 25-減算3 - 21*乗算3 * 26/除算5 / 22(整数)%剰余(余り)5 % 2...
お気軽にコメントください。
※コメントポリシーはこちらから。
0 Comments
Inline Feedbacks
すべてのコメントを見る
error: クリックできません。