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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Unity

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

Q&A

1回答

548閲覧

Unityスクリプト貼り付けエラーについて

reirei00

総合スコア1

Unity

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

0グッド

0クリップ

投稿2020/11/11 02:06

編集2020/11/11 02:30

unityの質問です
hierarchyの中のPlayerに、Projectの中のc#スクリプトをドラッグアンドドロップで貼り付けたいのですが以下のエラー文が出てきます。
[Cant add script behaviour CU.The script class cant be abstract!]
エラー文の意味を理解できる方教えてください。よろしくお願いいたします。

イメージ説明

// 便利な関数を管理する静的クラス
public static class CU
{
// 移動可能な範囲
static Vector2 MoveLimitTopLeft = new Vector2(-5.7f, 4.2f);
static Vector2 MoveLimitButtomRight = new Vector2(1.7f, -4.2f);

static Vector2 EnemyLimitTopLeft = new Vector2(-7.0f, 6.2f); static Vector2 EnemyLimitButtomRight = new Vector2(3.0f, -5.2f); // 指定された位置を移動可能な範囲に収めた値を返す public static Vector3 ClampPosition(Vector3 position) { return new Vector3 ( Mathf.Clamp(position.x, MoveLimitTopLeft.x, MoveLimitButtomRight.x), Mathf.Clamp(position.y, MoveLimitButtomRight.y, MoveLimitTopLeft.y), 0 ); } public static bool IsOut(Vector3 position) { return (position.x < EnemyLimitTopLeft.x || EnemyLimitTopLeft.y < position.y|| EnemyLimitButtomRight.x < position.x || position.y < EnemyLimitButtomRight.y); }

}

試したこととしてはスクリプトのクラス名と、スクリプト名は確認しましたが同じで、名前をいろいろ変更しましたが同じエラーメッセージがでてくる状況です。

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

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

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

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

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

sakura_hana

2020/11/11 02:17

「スクリプトを貼り付けたい」とはどういう意味ですか?(どこにどう貼り付けたいのですか?)
guest

回答1

0

staticクラスの場合、アタッチ(貼り付け)する必要はありませんし、出来ません。
アタッチする場合はそのスクリプトにMonoBehaviourを継承する必要がありますが、static関数しかない=オブジェクト自身の値すら使わない、ということなので割り当てる必要すらないのです。

内容を読んだ感じstaticが何なのかすら分かっていないようなので、オブジェクト指向について勉強することをおすすめします。

なお、元のソースは無くしましたが「初心者は極力staticを使うな」という意見もあります。
staticだと同じスクリプトを使いまわすことが出来なくなるケースが考えられます。

投稿2020/11/11 02:31

編集2020/11/11 02:35
fiveHundred

総合スコア9899

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

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

fiveHundred

2020/11/11 07:07

見た感じ、アタッチするのはこれではなく、CEnemyっぽいですね。
reirei00

2020/11/11 07:34

度々質問ごめんなさい。8:30ごろのC#スクリプトはどこに反映させればいいのでしょうか?
fiveHundred

2020/11/11 08:22

staticなクラスはアタッチせずとも反映されているはずです。 「CU.ClampPosition(~);」みたいな感じで呼び出せます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問