【Ruby】モジュールとは?
モジュールとは?
特定の機能を定義した部品(機能)のこと
以下のように定義する
module モジュール名 end
モジュールの特徴は?
・インスタンスを生成できないこと。
・ ほかのモジュールやクラスを継承できない。
クラスでも同じようなことができるのに、モジュールはどのようなときに使うのか?
・「ホンダ車は車である」のような関係(is-a関係)が成り立たないけど、共通の機能を追加したいとき 。
無理にクラスの継承を使うと、オブジェクト指向による設計が崩れて、コードが分かりにくいものになるから。
例えば、ログ出力するなどの色々な場面で使いたい機能などで使う。
・一つの機能として完結しているとき。
継承やミックスインして機能を拡張することがないときに使う。上記で述べたとおり、モジュールはクラスと違い継承ができないから
モジュールとクラスの違いは?
・モジュールは1つのクラスに複数のモジュールをミックスインできるが、クラスは1つのクラスに複数を継承できない。
・クラスはインスタンス化できるが、モジュールはできない。
【Java】マルチプロセス、マルチスレッドとは?
マルチプロセスとは、平行処理の一種で アプリケーションを複数実行すること。
マルチスレッドとは、平行処理の一種で 1つのアプリで複数の処理を交互に切り替えて実行すること。
以下、詳細説明です。
【理解する上で必要な前提知識3つ】
・平行処理
・プロセス
・スレッド
そもそも平行処理とは何かというと、 複数の処理を同時に実行すること。
平行処理によってソフトウェアの処理性能が向上します。
平行処理の実現方法2つはあって、それがマルチプロセスとマルチスレッドのこと。
プロセスとは、アプリケーションを起動させるとき、OSから割り振られるメモリ空間のこと。
例えるなら、ファンタジー・ゲームのMPのようなもの。
コンピュータが、限られたMP(メモリ空間)を割り振って、魔法(アプリ)を起動させるイメージです。
スレッドとは、プロセス内で実行される一連の処理の流れのこと。
スレッド(thread)とは、糸のことです。
マルチスレッドでは、プロセス内を複数に分割することで平行処理を実現します。
マルチスレッドは例えるなら、一本の糸(スレッド)が絡み合って、より大きな糸(アプリ)が出来上がるイメージです。
【マルチプロセスとマルチスレッドの違いは?】
マルチプロセスの問題点は、マルチスレッドに比べて起動に時間がかかること。
プロセス起動時にOSからメモリ空間を割り当てる必要があるからです。
逆に、プログラム異常時に他の処理に影響が出にくいというメリットはあります。
マルチスレッドは、すでにOSから割り振られたメモリ空間を分割して使います。
そのため、マルチプロセスに比べてパフォーマスに優れています。
しかし、複数処理を並列して走らせるため、プログラム異常時に他の処理に影響が出やすいです。
【Javaはどのように平行処理を実現しているか?】
Javaはシングルプロセス、マルチスレッドです。
どのスレッドを実行するかはJVMが判断しています。
そのため、プログラムからは、部分的にしか平行処理を制御できません。
まとめ
・マルチプロセスとは、平行処理の一種で、アプリケーションを複数実行すること。
・マルチスレッドとは、平行処理の一種で、1つのアプリで複数の処理を交互に切り替えて実行すること。
・Javaはシングルプロセス、マルチスレッド
【Unity】木、草・岩の3Dモデルのインポート方法
まず、
Assets > Import Package > Envieronmentをクリック。
Import Unity Packageウィンドウが開く。
Import Unity Packageウィンドウでインポートしたい素材にチェックを入れる。
木の3Dモデルは、
Standard Assets > Environment > Speed Tree > Broadleafチェック。
草・岩の3Dモデルは、
Standard Assets > Environment > TerrainAsseets > SurfaceTexturesにチェック。
チェック入れたら「Import」ボタンを押下する。
終わり。
【Unity】Terrainとは?
Terrainとは、平べったい直方体の3Dオブジェクトのこと。
下の画像の赤枠で囲ったのがTerrainで作ったオブジェクト。
作り方は、
Hierarchchy > Create > 3D Object > Terrainをクリック
【Unity】シーンビューの視点の動かし方(Mac)
altキーを押しながらScene上でドラックをすると、シーンビューの視点を動かすことができる。下のgif画像で右上のギズモが動いてるのがわかる。
【Unity】Mesh Rendererとは?
Mesh Rendererとは、Inspectorにある、画面上にオブジェクトを描画するコンポーネントのこと。
Mesh Rendererにチェックが付いているとオブジェクトがSceneに表示される。下の画像では白い壁が描画されている。
チェックを外すとそのオブジェクトがSceneから見えなくなる。見えなくなるだけで存在はしているので、当たり判定はしたいけれど見えない状態にしたい時にチェックを外す。