🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

6回答

2877閲覧

コードの日本語使用について

yonn

総合スコア120

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/02/18 03:46

Unityでゲームを作成しています。
スクリプトに日本語を入れても動くようなのですが本屋やホームページでは使っている例がとても少なく思います。

素朴な疑問なのですが何か理由があるのでしょうか?

//例   bool タイトル表示完了 = true; public void タイトル表示スタート() { タイトル表示完了 = false; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

ベストアンサー

素朴な疑問なのですが何か理由があるのでしょうか?

そもそもほとんど全てのメジャー言語が英語ベースで作られており、言語設計者や開発者の共通言語が英語であるのが主な理由じゃないでしょうか。

それがデファクト・スタンダード(事実上の標準)なので、そのスタンダードから外れる側(質問文の話で言えば敢えて日本語を使う側)にむしろそれ相応の理由が求められる、という状況になっているだけです。

「絶対に使うべきじゃない」みたいな人もいますが、マルチバイト文字をプログラミングに利用することのデメリット等は過去においては多数存在したし、その慣習を引きずっているというのもあるとは思いますし、まだまだマイナーなバグを踏む可能性は否定しませんが、言語としてマルチバイト文字をサポートしている以上は、それらは決定的な理由には成り得ません。(マルチバイト文字を積極的にプログラミングで利用する人が増えればバグは潰せるはずなので)

それらは個人であれば各々が、チーム開発であればそのチームが「決め事」として定めるものです。

ただ、現状では敢えて「日本語を使う」という選択に「周囲を納得させられるだけの理由」を提示できる人が居ないから見かけないだけでしょう。

また、もし自分が書くコードを日本語で揃えようと思っても、自分で書いたコード以外(ライブラリ等)はそうなっていないので、単純にチグハグした状態になります。

どうせ英語も混ざるのであれば、積極的に一部だけ日本語を使う意味はなかなか見出だせないでしょう。

ついでに、個人的には単数形と複数形の違いを表現しづらいのは日本語のデメリットだとは思います。

投稿2021/02/18 06:43

編集2021/02/18 06:47
gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Unityでは、ファイルパスに日本語を使うと、それが原因で正しく動作しない、というケースがあります。
パスなので関係ないと思うかもしれませんが、「MonoBehaviourを継承した場合、そのクラス名とファイル名は同じにしなければならない」というルールがあるため、基本的にクラス名に日本語を使ってはいけないことになります。

慣れてしまえば分かりやすさ的には英語でも問題ないですし、むしろ文字コードなどで悪影響が出る可能性があるほうが問題なので、コメント欄や文字列だけに留めておくほうがよろしいかと思います。

投稿2021/02/18 06:38

fiveHundred

総合スコア10152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もともとプログラミング言語は英語圏から開発されたというのもありますし、
日本語というかマルチバイトの変数やメソッド名が使える言語が最近のものなので、
すべて半角英数字で変数名やメソッド名を使っていた慣習というのもあるかと思いますが、

個人的には、
・日本語はものすごく見づらい上に、タイピング量が多い
・いちいち半角と全角との変換が面倒
・他人のソースとの整合性
・githubなどの参考になる資料も英語が基本
という点があるので、日本語の変数名やメソッド名を使いたくありません。

しかし、個人的なプロジェクトであれば自由にやってOKだと思います!

投稿2021/02/18 03:53

mingos

総合スコア4200

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Munosuke222

2021/02/18 04:13

個人的なプロジェクト(=誰にも迷惑をかけない)なら個人のアレですんで好きにすれば良い思いますし、命名が簡単になるメリットとかもあると思いますが、どう考えてもデメリットのが多い気がするので今からプログラミング始める・最近始めました、って人には諸手を挙げて推奨はしませんねえ…
mingos

2021/02/18 04:17

だから個人的なプロジェクトであれば自由にやっていいよと回答していますよね? まぁデメリット多いのはその通りだし、仕事でやるんだったら絶対許可しないというかあり得ない話なんですが、趣味でやる話だろうから頭ごなしに否定しなくてもいいんではないですかね。 自分と関わるるケースだったら絶対拒否ですが、そうではないので。
Munosuke222

2021/02/18 04:36

「一般的にはあり得ない」的な文言は回答に入れてあげた方が良かったんじゃないかと思いまして。そもそも何で使わないの?ってのが質問ですし。どちらかと言えばこの質問って「(色々メリットデメリットあるが実際には)英語で書くのが常識だから」って理由で片付くようなもんだと思うんですけど、正直あり得ないと思うけど個人的にならやっていいよ!ってなんかすごい悪いこと教えてる感じがしません?僕が気にし過ぎなのかも知れませんが。
mingos

2021/02/18 04:43

気にし過ぎじゃないですかね。
Munosuke222

2021/02/18 04:44

それは失礼しました。
gentaro

2021/02/18 07:21

> ・日本語はものすごく見づらい上に、タイピング量が多い 見づらいのは主観的な話なので比較が難しいですが、タイピング量については何か統計的根拠等があるんでしょうか? 例えばTwitterの140文字制限の中で、日本語の方が英語より遥かに多くの情報を詰め込める、みたいな話があって、日本語の方が基本的にはより少ない文字数で表現力が勝るというイメージがあるんですが。 https://easyramble.com/compare-japanese-with-english.html プログラミングにおける頻出単語の文字数の平均値が日本語>英語、とかいう話ならまぁ納得できますが。
mingos

2021/02/18 07:29

プログラミングに限定した話に決まっているじゃないですか。 揚げ足取りのようなコメントばかりで嫌になったのでこれ以降はもう返信しません。
gentaro

2021/02/18 07:34

え?根拠聞いたら揚げ足とりなの? じゃあ根拠ない回答でも信じろ、ってスタンスなの? 根拠あればあるで出して欲しい、ってだけで、根拠のある話じゃなくてあなたの感覚とかそういう話ならそれはそれでそう言って欲しいだけなんだが。
guest

0

ファイル内だけで使う識別子を日本語にする分には、(言語が対応していれば)勝手に使う分に問題はないのですが、Javaの言語仕様やオートロードなど、ファイル外部の識別子はファイル名と結びつくことがあります。

URLに日本語を入れる場合もエンコードで混乱したりしますし、「macOSではUnicodeの正規化の形が違って、仮名の濁点・半濁点が違うエンコードになる」など、ファイルシステムとも絡んでちょっとやそっとでは対応が困難な問題に陥ることもありえます。

ファイル名に関係するような識別子は、英数字・アンダーバーといった限られた文字から選択することをおすすめします。

投稿2021/02/18 08:10

maisumakun

総合スコア145963

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

仕様上できるのでやっても大丈夫です。 ※ ただし通常はやらないので、オススメはしません。

ただメジャーなやり方ではないので、色々問題が起こる可能性があります。
なので使いたい場合はそういうのも自分で解決することが求められます
(日本語起因によるバグなのか、ソースコードのバグなのか分かりづらい)

似たような疑問であがっていた問題点があるのでそちらも参考にどうぞ。

日本語で命名するコーディングの問題点
日本人にしか読めない(グローバルスタンダードではない)
jsファイル設置後にContent-Typeヘッダで文字コードを指定する必要がある(逆にASCII文字だけで構成すれば、文字コードを気にする必要はない)
日本語は動詞が最後に来るので、最後まで読まないとそれが関数である事が分からない(バーコードから商品オブジェクトを得る vs getItemByBarcode)
map,object等、プログラミング独特の意味を持つ英単語をどう日本語に訳していいか分からない
get等の動詞にも日本語の表現に揺らぎがある
ビルトインオブジェクトは英語、ユーザ定義オブジェクトは日本語となる為、和英混在となる

https://jsfiddle.net/0Ln7c2jj/1/

投稿2021/02/18 06:16

編集2021/02/18 06:17
hogefugapiyo

総合スコア3302

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

20220925
日本語を使ってみての感想
(win⇨macへ移行していますので比較しました)

windowsの場合
パスにさえ日本語を使わなければスクリプトの可視性は大幅に向上します。(プロジェクトウィンドウ内のフォルダはOK)
winではヒエラルキー上のオブジェクト名も日本語にできます。
特にVisualStudioでの候補でスクリプト、メソッドなどが一覧で出る時は日本語でまとめてあり並び一目瞭然です。
とても使いやすいと思いました。

macの場合
スクリプト名に濁点が入るとエラーが出ました。
「だるま」 ≠ 「だ るま」(jis規格が違うためスペースが入り必ずエラーになります)
ヒエラルキー上のオブジェクト名は日本語入らない。

日本語の方が読みにくいという方がいらっしゃるようですが、プログラミングの勉強をしたい、Unityの勉強をしたいなら日本語の方が取っ付きやすいでしょう。
小学生でも読めるようになります。

Googleでアプリも出せました。
誰かの参考になればと思います。

投稿2022/09/25 01:35

yonn

総合スコア120

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問