三十日目



オチ物ゲームを制作する。
オブジェクトが落ちてきて、キャラクターが避けるというアレだ。
今回の学習内容は、当たり判定の設定と、
オブジェクトの自動生成、自動削除だ。
このあたりのポイントはユニティちゃんをいじくった際にコライダの設定でも学習したが、
復習もかねて取り組むことにする。
最初の時はスクリプトもチンプンカンプンだったので、
今回は教材による解説もあり、理解が進むだろう。


キャラクターや障害物として設定する画像の取り込みなどは、もう慣れたものだ。
座標やサイズも教材の設定と合わせる。
次はキャラクターの移動を規定するスクリプトを作成する。





using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

        // Use this for initialization
        void Start () {
       
        }
       
        // Update is called once per frame
        void Update () {
        //左矢印が押されたとき
    if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            transform.Translate(-3, 0, 0); //左に[3]動かす
        }
        //右矢印が押されたとき
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            transform.Translate(3, 0, 0); //右に[3]動かす
        }

        }
}


……教材通り書いたはずだが、見慣れないエラーが出た。


>Error    CS1061 'Transform' does not contain a definition for 'translate' and no extension method 'translate' accepting a first argument of type 'Transform' could be found (are you missing a using directive or an assembly reference?)

ああ、なるほど、エラーCS106ね、ふむふむ。
なるほどなるほど。全然わからん。


教材のスクリプトと見比べてみても、スペルミスはないようだが……。
ふと、下記のハイライト部分が大文字と小文字の違いがあることに気付いた。
さっそく直してみる。


transform.translate(-3, 0, 0); //左に[3]動かす
transform.Translate(-3, 0, 0); //左に[3]動かす


エラーが消えた。
……何が違うんだ?よく分からない。
このエラーは今後も起こりそうな気がする。
だれか大文字小文字の違いがどのような意味なのか知っていたら教えてほしい。
とりあえず、
左右のキーでキャラクタを移動させるための基礎部分は完成したのでよしとする。


0 件のコメント:

コメントを投稿