↑Unityでこんな感じにする
ある位置を超えたときに反対からオブジェクトが出てくるようにしていく。
*タイトルがおかしいのは申し訳ない
目次
ある位置を超えたときにオブジェクトが反対から出てくるようにする【シューティングゲームで使える】
現在の状態
- 左右に動くオブジェクト「Player」の設置
- 「Player」には「PlayerController.cs」スクリプトがついてる
名前は何でも良い。
「Player」にアタッチしてあるスクリプトに記述
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed = 7.0f;
void Start()
{
transform.position = new Vector3(0, 0, 0);
}
// Update is called once per frame
void Update()
{
float horizontalInput = Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * speed * horizontalInput * Time.deltaTime);
// ここから本記事の内容
if (transform.position.x > 9.2f)
{
transform.position = new Vector3(-9.2f, transform.position.y, 0);
}
else if (transform.position.x < -9.2f)
{
transform.position = new Vector3(9.2f, transform.position.y, 0);
}
}
}
左右に動く機能がすでについている人は「//」コメント以下をご覧いただきたい。X=9.2以上にプレイヤーが移動した場合に反対から出ていくようにしている。
実行してみる
実際に動かしてみてプレイヤーが画面の端にいったときに、なめらかに反対から出てくるような値に変更していただきたい。
おわりに
シューティングゲームやプレイヤーが動きに制限をつけるときに使えると思う。画面端までいくと動けなくなるより、反対側から出てくる方が個人的には快適だ。
以上、ある位置を超えたときにオブジェクトが反対から出てくるようにする方法だ。
このようなチュートリアルを販売しているので、Unityでゲームを作成している人は購入していただきたい。
【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要
はじめに Unityでのゲーム開発を手助けするメディア「Unishar-ユニシャー」のさぎのみやです。「フリスビーを犬に届けよ!」というゲームのチュートリアルを作成しまし...
コメント