質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

Q&A

解決済

1回答

2539閲覧

Unity 自機を動かすプログラムに移動制限をつけたい

rain81

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

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

0グッド

0クリップ

投稿2018/06/25 06:32

前提・実現したいこと

Unityで2Dシューティング風ゲームを作っていたのですが、自機の移動範囲の設定がうまくいきません。まだ素人のため、ブログなどを参考にプログラムを打ち込んでいます。
「自機を方向キーで上下左右に動かす」というプログラムに移動制限をつけようとしたところ、以下のエラーメッセージが発生しました。回答していただけると助かります・・・

発生している問題・エラーメッセージ

CS0103 The name '〇〇' does not exist in the current context

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class srydingScript : MonoBehaviour { 6 7 void Start () { 8 9 } 10 11 void Update () { 12 if (Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKey(KeyCode.LeftArrow)) { 13 transform.Translate (-0.1f, 0, 0); 14 } 15 16 if (Input.GetKeyDown(KeyCode.RightArrow) || Input.GetKey(KeyCode.RightArrow)) { 17 transform.Translate (0.1f, 0, 0); 18 } 19 20 if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKey(KeyCode.UpArrow)) { 21 transform.Translate (0, 0.1f, 0); 22 } 23 24 if (Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKey(KeyCode.DownArrow)) { 25 transform.Translate (0, -0.1f, 0); 26 } 27 } 28}

試したこと

このプログラムの下部に「Mathf.Clamp~」というコードを入れようとしたところ、上記のエラーが発生しました。適用したいオブジェクトの名前は「sryding」です。
エラーコードの意味は分かったのですが、「宣言」をどうやったらいいのか分からず・・・

補足情報(FW/ツールのバージョンなど)

Unity 5.6.5f1

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

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

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

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

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

guest

回答1

0

ベストアンサー

c#

1 // 移動可能な範囲 2 public static Vector2 m_moveLimit = new Vector2(4.3f, 2.1f); 3 4 // 指定された位置を移動可能な範囲に収めた値を返す 5 public static Vector3 ClampPosition(Vector3 position) 6 { 7 return new Vector3 8 ( 9 Mathf.Clamp(position.x, -m_moveLimit.x, m_moveLimit.x), 10 Mathf.Clamp(position.y, -m_moveLimit.y, m_moveLimit.y), 11 0 12 ); 13 } 14

自分はこのようにして組んだことがあります。

投稿2018/06/25 06:39

GOTOken

総合スコア54

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

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

rain81

2018/07/03 14:14

返信が遅れてしまい申し訳ありません。 回答してくださりありがとうございます。後日試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問