code ソーシャル

Unityアプリcodetips(19)

スポンサーリンク

//tips

//プレイヤーの動きをフィールド内に制限する

プレイヤーの動きをフィールドの中に制限するために、Mathf.Clampを使用する。

Mathf.ClampはMathf.Clamp(float value, float min, float max)と表され、Mathf.Clamp(検査したい値, 制限したい値の下限, 制限したい値の上限)と記載される。

Transform.transpositionでこれを使用する場合は、Vector3で検査したい次のポジションの変数を作成し、Vector3のx,y,zなどを抜き出して、それが制限範囲ないかどうか判断した上で、制限範囲内であれば現在のポジションに、次のポジションを塗り替えるという手法をとる。

Vector3 nextPosition = transform.position;
nextPosition.x = Mathf.Clamp(nextPosition.x - 1, 0, 10.0f);
transform.position = nextPosition;

書き換えたスクリプトは下記に記載する。

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

public class PlayerController5 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{

}

// Update is called once per frame

void Update()
{
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
Vector3 nextPosition = transform.position;
nextPosition.x = Mathf.Clamp(nextPosition.x - 1, 0, 10.0f);
transform.position = nextPosition;
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
Vector3 nextPosition = transform.position;
nextPosition.x = Mathf.Clamp(nextPosition.x + 1, 0, 9.0f);
transform.position = nextPosition;

}
if (Input.GetKeyDown(KeyCode.UpArrow))
{
Vector3 nextPosition = transform.position;
nextPosition.z = Mathf.Clamp(nextPosition.z + 1, 0, 9.0f);
transform.position = nextPosition;

}
if (Input.GetKeyDown(KeyCode.DownArrow))
{
Vector3 nextPosition = transform.position;
nextPosition.z = Mathf.Clamp(nextPosition.z - 1, 0, 10.0f);
transform.position = nextPosition;
}

}
public void PushLeftButton()
{
transform.Translate(-1, 0, 0);
}
public void PushRightButton()
{
transform.Translate(1, 0, 0);
}
public void PushUpButton()
{
transform.Translate(0, 0, 1);
}
public void PushDownButton()
{
transform.Translate(0, 0, -1);
}

}

//導入したZBrushCoreminiで制作したオブジェクトのUnityへの移行

無料でハイクオリティの3DCGモデリングが可能なソフトウェア、Sculptrisではなく、同社が提供しているZBrushCoreminiがインストールできたので、そちらを使用して、Unityのオブジェクトを制作して、移行させた。

下記のサイトを参考にして導入作業を行った。

案外操作が難しく、ロボットを作ろうとしたが今回は諦めた。

【Sculptrisまとめ】使い方/ダウンロード方法(日本語)/ZBrushとの違い

https://qiita.com/UpAllNight/items/317708069d1ed3ff0486

Unityへのインポート作業はシンプルで、ZBrushCoreminiからエキスポートしたobjファイルをプロジェクトシーンにドラッグし、ドラッグしたモデルのインスペクターから一部修正を行うことで、シーンにモデルを反映させる準備ができる。

修正ポイントとしては、ModelのNormal→Calculateに変更し、ベクトルを生成すること、animationを使用しない場合、Don't Importに変更すること、がある。

また、私が導入した際にオブジェクトの色がきちんと反映されなかったのでUnity側で色のMaterialを作り、アタッチした。

Animationをさせるためにはblenderを導入し、ZBrushCoreminiからblenderへの移行で骨入れをしてからUnityに移す必要がある。

Blenderも導入したいがストレージが限界に達してしまったので外付けHDDの到着を待ってからの導入となる。

人気の記事

1

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

3

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-code, ソーシャル
-,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.