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

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

ただいまの
回答率

87.49%

主人公が乗ると数秒後に落下する床の作成

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,037

score 50

c#勉強したてのものです。
https://gametukurikata.com/program/fallfloor
のサイトに載っている主人公が乗ると数秒後に落下する床の作成で、書いてあるものをそのまま実行しようとしてみたら

function OnControllerColliderHit(col : ControllerColliderHit) {
    if(col.gameObject.tag == "FallBlock") {
        col.gameObject.GetComponent.<FallFloor>().ReceiveForce();
    }
}

の1行目のfunctionと

public var limitTime : float;
private var totalTime : float;
private var rigidBody : Rigidbody;

function Start () {
    totalTime = 0.0f;
    rigidBody = GetComponent.<Rigidbody>();
}

function Update () {

    if(totalTime >= limitTime) {
        rigidBody.isKinematic = false;
    }
}

function ReceiveForce() {

    if(rigidBody == null) {
        gameObject.AddComponent(Rigidbody);
        rigidBody = GetComponent.<Rigidbody>();
        rigidBody.isKinematic = true;
    }

    totalTime += Time.deltaTime;
}

function OnCollisionEnter(col : Collision) {

    if(col.gameObject.layer == LayerMask.NameToLayer("Field")) {
        Destroy(this.gameObject);
    }
}

の1行目のvarでエラーが出ます。

両者ともUnexpected symbolと出てくるのですが、何がおかしいのかわかる方いましたらご教授願いたいと思います。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+2

そのサイトのここを見ると解決する問題だったりしませんか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/31 09:46

    みながらやってみたいと思います!
    ありがとうございました。

    キャンセル

checkベストアンサー

+1

ご参考になさったサイトではJavaScriptを用いている様子ですね。
JavaScriptのスクリプトファイルはメニューのAssets > Create > JavaScriptで作成できるかと思います。

[コメントを受けて追記]
どの部分がうまくいかなかったでしょうか?

一旦メニューのAssets > Create > C# Scriptで適当な名前でC#スクリプトを作ってみますと、StartとUpdateの書かれた雛型ができるかと思います。基本的な骨格はそれをまねて、あとは

  • 先のJavaScriptで書かれた諸々のコードと対応するC#コードはpublic class スクリプト名 : Monobehaviour {書き換えたコード}のようにクラス定義の中に入れる
  • public/private var 変数の名前 : 型の名前;public/private 型の名前 変数の名前;の形にする
  • メソッドの定義の形をC#のスタイルにする...例えばfunction OnCollisionEnter(col : Collision)void OnCollisionEnter(Collision col)のような風に、返り値の型またはvoid メソッドの名前(引数の型 引数の名前)に書き換える
  • ReceiveForceは別のスクリプトから呼びたいので、別のスクリプトからアクセス可能にする...つまりpublic void ReceiveForce()という風にメソッド定義の頭にpublicを付ける
  • GetComponent.<型の名前>()のドットは消してGetComponent<型の名前>()にする

このあたりはHiroshiWatanabeさんがご提示いただいたページで一通り解説されていましたので、それに沿って書き換えていけばいいでしょう。その他、

  • AddComponent(型の名前)AddComponent<型の名前>()の形にする

といった修正を加えてみてください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/31 09:43

    HiroshiWatanabeさんのご回答とタイミングがかぶってしまいました...
    ご提示のあったページを参考に、C#に書き換えてみるのもよいと思います。

    キャンセル

  • 2017/10/31 09:45

    そんことだったんですね。。。
    ありがとうございました。
    一度やってみたいと思います

    キャンセル

  • 2017/10/31 09:59

    c#に書き換えることができないのですが、教えていただけますでしょうか?

    キャンセル

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

  • ただいまの回答率 87.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る