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

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

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

4

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

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-code, ソーシャル
-,

Copyright© BUSINESS HACKER , 2020 All Rights Reserved Powered by AFFINGER5.