※prefab とは
ゲームオブジェクトの複製
prefab 化すると同じオブジェクトを使い回すことができる
prefab がクラスでそのインスタンスを複数生成するイメージ
※プレイヤーが操作するオブジェクトであることを明示するにはタグを"Player"にする
[Create] → "Camera" を選択
public class FollowPlayer : MonoBehaviour
{
public Transform target; // ターゲットへの参照
private Vector3 offset; // 相対座標
void Start()
{
//自分自身とtargetとの相対距離を求める
offset = GetComponent<Transform>().position - target.position;
}
void Update()
{
// 自分自身の座標に、targetの座標に相対座標を足した値を設定する
// 後ろを飛んでいるドローンみたいに追従する
GetComponent<Transform>().position = target.position + offset;
}
}
ex) タイトル画面からゲーム画面(Mainシーン)への遷移
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Start : MonoBehaviour {
public void ClickStart(){
SceneManager.LoadScene("Main");
}
}
プレイヤーが動かせる
オブジェクトを作る方法
これだけで人っぽく動くキャラクターを用意できる
中のスクリプトを見ると結構勉強になる
簡単のために四角い箱を動かしてみます
Rigidbody ・・・ 剛体; 力を加えられる物体として認識される
public class MoveCube : MonoBehaviour
{
float speed = 10;
//Updateはフレームごとに呼ばれる
//FixedUpdateは動くたびに呼ばれる
void FixedUpdate()
{
// ここで右1左-1上1下-1を検知
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
Rigidbody rigidbody = GetComponent<Rigidbody>();
// x軸(横)とz軸(奥)に力を加える
rigidbody.AddForce(x * speed, 0, z * speed);
}
}
スクリプト例
A, ← -1
D, → +1
W, ↑ -1
S, ↓ +1
x z