はじめに
こんにちは!皆さん!今回は、Unityを使って「地面から出ては引っ込む」動きをするシリンダーを作る方法をご紹介します。この動きはゲームの仕掛けやパズル要素として使えるほか、動きの基本を学ぶ良い練習にもなります。
この記事では、シリンダーを地面に配置し、C#スクリプトを使って動きをつける手順を、初心者にも分かりやすく解説します。「Unityを始めたばかりでスクリプトなんて無理!」と思っている方も大丈夫!細かい手順を一つずつ説明するので、一緒に進めれば必ず完成します。
この記事を読み終えるころには、以下のことができるようになります:
- Unityで3Dオブジェクトを作成し、シーンに配置する
- 簡単なC#スクリプトを作成してオブジェクトに動きをつける
- Unityでオブジェクトを動かすための基本的な考え方を理解する
「コードを書くのは初めて」という方も、「もう少しUnityに慣れたい」という方も、ぜひこの記事を参考にして、新しいスキルを身につけてください。それでは、さっそく始めていきましょう!
Unityを触ったことがないという方はコチラの記事から見てみてください!
Step 1: シーンの準備
まずは、Unityで新しいシーンを準備しましょう。このシーンが、今回のシリンダーの動きを実装する舞台になります。
1.1 新しいシーンを作成する
Unityを開いて、以下の手順で新しいシーンを作成します:
- メニューバーから「File」→「New Scene」をクリックします。
- 新しいシーンが作成されます。保存されていない場合は「Save Scene」ウィンドウが表示されるので、適切な名前(例:
CylinderScene
)を付けて保存してください。 - シーンの作成が完了したら、真っさらなシーンが表示されるはずです。
1.2 シーンビューを確認する
新しいシーンが開いたら、Unityの基本画面構成を確認してみましょう。
- シーンビュー
オブジェクトを配置して見た目を確認する場所です。ここで、シリンダーや地面を配置します。 - ヒエラルキー(Hierarchy)ウィンドウ
シーン内にあるオブジェクトの一覧が表示される場所です。ここでオブジェクトの追加や管理を行います。 - プロジェクト(Project)ウィンドウ
プロジェクトに含まれるアセット(スクリプト、モデル、素材など)が表示されます。
1.3 初期設定を確認する
シーンの作業をスムーズに進めるため、以下の初期設定を確認しましょう:
- ライト
シーン内のオブジェクトが明るく見えるように、「Directional Light」が存在しているか確認してください。ヒエラルキーウィンドウに表示されているはずです。 - カメラ
「Main Camera」が配置されているか確認してください。このカメラがゲーム画面の映像を映し出します。

シーンの準備が整いました!次は、シリンダーと地面を配置していきましょう。簡単なので、さっそく進みましょう!
Step 2: シリンダーと地面を配置
さて、まずはシーンにシリンダーを追加して、そのシリンダーが動く舞台となる地面を作りましょう!以下の手順で進めていきます。
1. シリンダーをシーンに追加する
- Unityのヒエラルキーウィンドウで「右クリック」します。
- 表示されるメニューから「3D Object」を選択します。
- 次に「Cylinder」をクリックします。
これでシーンにシリンダーが追加されました!画面の中央に円柱状のオブジェクトが表示されるはずです。もし見当たらない場合は、シーンビューを動かして確認してみてください。
2. 地面を作成する
シリンダーが浮いていると不自然なので、シリンダーの下に地面を作りましょう。
- 再びヒエラルキーウィンドウで「右クリック」します。
- 同じく「3D Object」を選択し、今度は「Plane」をクリックします。
これで地面が追加されます!初期設定では地面が広く配置されるので、特別な調整をしなくてもそのまま使えます。
3. 確認
シーンビューで確認してみてください。シリンダーが地面の中央に置かれていれば成功です!この状態が、次のスクリプトを使った動きの実装に必要な準備となります。


このように簡単にシリンダーと地面を配置できましたね!次はシリンダーに動きをつけるスクリプトを作成していきます。
Step 3: スクリプトの作成
それでは、シリンダーに「出ては引っ込む」動きをつけるスクリプトを作成していきましょう!スクリプトの作成は難しそうに見えますが、一つずつ進めればとても簡単です。
1. スクリプトを作成する
まず、Unityのプロジェクトウィンドウに移動してください。ここで、新しいスクリプトを作成します。
- プロジェクトウィンドウを右クリックします。
- **「Create」→「C# Script」**を選びます。
- 新しいスクリプトが作成されるので、名前を**「MoveCylinder」**に変更してください。
これでスクリプトファイルが作成されました!
2. スクリプトを編集する
次に、作成したスクリプトを編集していきます。
- 作成した**「MoveCylinder」スクリプトをダブルクリック**してください。
- スクリプトがVisual Studioまたはお使いのコードエディタで開きます。
以下のコードをエディタにコピー&ペーストしてください。
using UnityEngine;
public class MoveCylinder : MonoBehaviour
{
private float count; // 動作のカウントをする変数
private float move = 0.02f; // シリンダーが動くスピード
void Update()
{
// シリンダーの位置を少しずつ移動
Vector3 position = new Vector3(0, move, 0);
transform.Translate(position);
count++;
// 一定の回数移動したら方向を反転
if (count == 100)
{
count = 0;
move *= -1;
}
}
}
3. コードの説明
このスクリプトがどのように動くか、簡単に解説します。
Update()
メソッド
Unityのフレームごとに呼び出されるメソッドです。この中に、シリンダーの動きを指示するコードを書いています。transform.Translate()
シリンダーを移動させるメソッドです。このコードではY軸方向(上下)にシリンダーを移動させています。count
変数
シリンダーが一定距離移動したかを確認するためのカウンターです。count
が100に達すると、move
の符号(+または-)を反転させることで動きの方向を切り替えています。
4. 保存する
コードを書き終えたら、Ctrl + S(Macの場合はCommand + S)で保存しましょう。

これでスクリプトの作成は完了です!次は、このスクリプトをシリンダーにアタッチして動かしてみましょう。
Step 4: スクリプトのアタッチ
シリンダーを動かすために作成したスクリプトをシリンダーにアタッチしましょう。スクリプトをアタッチする作業はとても簡単です。以下の手順に従って進めてください。
手順
- スクリプトを確認 まず、プロジェクトウィンドウに「MoveCylinder」という名前のスクリプトがあることを確認してください。このスクリプトをシリンダーにアタッチします。
- ヒエラルキーでシリンダーを選択 ヒエラルキーウィンドウで「Cylinder」という名前のオブジェクトをクリックしてください。シリンダーが選択された状態になります。
- スクリプトをドラッグ&ドロップ プロジェクトウィンドウにある「MoveCylinder」スクリプトを左クリックし、そのままヒエラルキーのシリンダーにドラッグしてドロップします。これでスクリプトがアタッチされます。
- インスペクターで確認 シリンダーを選択した状態で、インスペクターウィンドウを確認してください。
Move Cylinder (Script)
という項目が追加されていれば、スクリプトのアタッチは完了です。
注意点
- スクリプトが正しくアタッチされていない場合は、インスペクターにエラーメッセージが表示されることがあります。その場合は、スクリプト内のコードにミスがないか確認しましょう。
- 必ずアタッチするのは「Cylinder」オブジェクトであることを確認してください。他のオブジェクトにアタッチすると、シリンダーが動かなくなります。

スクリプトをアタッチしたら、次のステップに進み、Unityの「Play」ボタンを押して動作を確認してみましょう!シリンダーが地面から「出ては引っ込む」動きを始めるはずです。
Step 5: 動作確認
ここまででシリンダーと地面の配置、スクリプトの作成とアタッチが完了しましたね。それでは、動作確認をしてみましょう!以下の手順で確認を進めてください。
1. Playモードに切り替える
Unityエディターの上部にある「Play」ボタン(三角形の再生アイコン)をクリックしてください。すると、シーンが実行され、オブジェクトの動きを確認できるモードに切り替わります。
2. シリンダーの動作を観察する
シーン内に配置したシリンダーが地面から上下に「出ては引っ込む」動きをしていることを確認してください。もし期待通りに動いていれば、成功です!🎉
3. 動かない場合のチェックポイント
もし動作しない場合は、以下を確認してください:
- スクリプトがアタッチされているか確認
ヒエラルキー(Hierarchy)ウィンドウでシリンダーを選択し、インスペクター(Inspector)ウィンドウに「MoveCylinder」スクリプトが表示されているか確認してください。もし表示されていない場合は、もう一度スクリプトをドラッグ&ドロップでアタッチしてください。 - エラーメッセージの確認
Unityエディターの下部にある「Console」ウィンドウを開き、エラーメッセージが表示されていないか確認してください。エラーがある場合は、スクリプトのコードを再確認しましょう。 - カメラの位置を確認
シリンダーや地面がカメラの視界に入っていないと、画面に表示されません。シーンビューでカメラの位置と角度を調整して、シリンダーがしっかり見えるようにしてください。
4. 動作が確認できたら
Playモードを終了するには、もう一度「Play」ボタンをクリックします。これでシーンが編集モードに戻り、再びオブジェクトやスクリプトの変更が可能になります。

これでシリンダーが地面から「出ては引っ込む」動きを確認できたはずです!次に進む前に、試しに値を変更して動きをカスタマイズしてみると、スクリプトの理解がさらに深まりますよ。例えば、上下のスピードを速くしたい場合は、スクリプト内のmove
の値を調整してみてください!
あわせて読みたい
以下の記事もあわせて読むことで、オブジェクトの動きや物理挙動に関する理解が深まります!
- 🎯 Unityで簡単に球体を転がす!初心者向けスクリプト解説
球体を自然に転がすスクリプトを学びながら、リジッドボディの使い方もマスターしよう。 - 🔄 UnityでCubeを動かして衝突オブジェクトの名前を取得する方法【初心者向け】
動かしたオブジェクトが何に当たったかを確認する処理を学べます。 - 🧱 Unityで簡単な物理ギミック作成!障害物落下をスクリプトで実現する方法
落下オブジェクトの仕組みを使って、シリンダーの連動アニメーションにも応用可能! - ⏱️ Unityで簡単!n秒おきに繰り返し実行するスクリプトを作ろう
タイマー処理を組み合わせることで、より滑らかなシリンダーの動きが実装できます。 - 🔁 Unityで四角形の外周をループ移動!Cubeを動かす簡単スクリプト
連続運動の作り方を学びたい方におすすめ!
よくある質問
- Qシリンダーが動かない場合はどうすればいいですか?
- A
スクリプトがシリンダーにアタッチされているか確認してください。また、スクリプト内のエラーがないか確認しましょう。
- Qシリンダーの動きを速くしたい場合はどうすればいいですか?
- A
スクリプト内の
move
の値を大きくすることで速くできます。
- Qシリンダーを回転させることは可能ですか?
- A
回転を追加したい場合は
transform.Rotate()
メソッドを使用してください。
おすすめのアセット
「10 One Tap Games Bundle Ultimate Collection」は、シンプルで楽しいワンタップゲームを10種類詰め合わせたお得なパックです。このバンドルには、初心者でも簡単にプレイできるゲームが含まれており、スマートフォンやタブレットでの操作に最適化されています。
このコレクションの特徴は、すぐに使えるゲームテンプレートが含まれていることです。各ゲームはカスタマイズ可能で、自分のアイディアを加えることでオリジナルゲームを作成できます。プログラミング経験がなくても、簡単にゲームを開発できるのが魅力です。