MotoJapan's Tech-Memo

技術めも

【Unity5】ボールをキーボード操作で移動させる

これの続き
motojapan.hateblo.jp
motojapan.hateblo.jp


今回はスクリプトをコーディングしまする
Unityのみでは、細やかな操作やアニメーションを実装できないので、
C#でコーディングしまする

簡単なコードで動きますね

①Script用フォルダを作成

Assets->Create->Folderでフォルダ作成
(フォルダ名は適当にScripts)
f:id:motojapan:20170503180816p:plain

Scriptsを左クリックでCreate -> C# Script
(ファイル名は適当にball_controller)
f:id:motojapan:20170503180854p:plain

ball_controllerをクリックすると何やら右側にCode Previewが映っています
f:id:motojapan:20170503181004p:plain

②Scriptを編集する

ball_controllerをダブルクリックするとVisual Studioを立ち上がります
(Editorは環境依存です)
f:id:motojapan:20170503181206p:plain


次のTemplateが出現しますね

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ball_controller : MonoBehaviour {

    // Use this for initialization
    //最初に一度だけ呼ばれる処理
    void Start () {	
    }
	
    // Update is called once per frame
    //毎フレーム呼ばれる処理
    void Update () {
    }
}


なのでUpdateを次のように編集してみる

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ball_controller : MonoBehaviour {

    //ここの宣言が後でUnityでいじれる設定となる
    public Vector3 ball_position = new Vector3(0.0f, 0.0f, 0.0f);
    
    // Use this for initialization
    //最初に一度だけ呼ばれる処理
    void Start () 
    {	
    }
	
    // Update is called once per frame
    //毎フレーム呼ばれる処理
    void Update()
    {
        //[W]クリック時の処理
        if (Input.GetKey(KeyCode.W))
        {
            transform.position += ball_position;
        }
        //[Q]クリック時の処理
        if (Input.GetKey(KeyCode.Q))
        {
            transform.position -= ball_position;
        }		
    }
}

③Scriptをボールに適用する

ボールのInspectorからAddComponentで②で編集したball_controllerを選択
f:id:motojapan:20170503182209p:plain

ball_controllerが追加されたので、
Ball_positionのZのみを1にしてみる
これで「W」をクリックすると、ボールが奥に移動し、「Q」をクリックすると手前に移動する(はずだ)

④チェック

例によって再生ボタンをクリック

これが
f:id:motojapan:20170503182806p:plain
Wを押すとこうなって
f:id:motojapan:20170503182849p:plain
斜めの丘を転げる
f:id:motojapan:20170503182918p:plain


Have a nice GW !!