【作ってみたシリーズ】男性に理解してほしい!!トイレシミュレーション

幾何学模様の涙 Unity
幾何学模様の涙

The Toilet Simulation

The Toilet Simulationのゲーム画面

本当はWebGLという規格で作って
Webブラウザ上で全世界の男性に挑戦状を叩きつけたかった。。

今回使った技術がWebGLに対応していなかったため
なくなくWindowsアプリケーション(下記zipフォルダ内のexeファイル)にしました。

theToilet.zip

※ブラウザからzipフォルダをダウンロードする際は”必ず”ウィルススキャンをしてください!

作業工程

①Create World!!

Unity初期画面

②必要なAssetsをDownload&Import!!

Assets画面

③パパっと配置!!

必要なゲームオブジェクトを配置

④UIを配置!!

UIを配置

⑤適当にスクリプト作成!!

スクリプトのコード画面

⑥完成!!

トイレシミュレーションの完成

試行錯誤録

1.パーティクルシステムが衝突した箇所の位置情報を取得する

こちらのサイトが大変参考になりました!実績有りなので引用させていただきます。
Unity – Particle Systemで衝突した座標を取得する。

 private ParticleSystem particle;
    private List<ParticleCollisionEvent> collisionEventList;

    public GameObject objprefab;

    void Start()
    {
        particle = GetComponent<ParticleSystem>();
        collisionEventList = new List<ParticleCollisionEvent>();
    }

    void OnParticleCollision(GameObject obj)
    {
        particle.GetCollisionEvents(obj, collisionEventList);
        foreach(var collisionEvent in collisionEventList)
        {
            Vector3 pos = collisionEvent.intersection;
            Instantiate<GameObject>(objprefab, pos, Quaternion.identity);
        }
    }
2.nvidia Flexがクラッシュしないようにする

nvidia FlexSourceActorをSetActiveで表示切替を行うと下記エラーが出てくる。

mapping a buffer that was already mapped

こちらのIssuesが大変参考になりました!実績有りな箇所を引用させていただきます。
SteamVR 2.2 + nvidia Flex errors #337

if (m_indexBuffer != null)
{
    m_indexBuffer.SetData(indices);
}

上記箇所を下記コードに修正する。

if (m_indexBuffer != null)
{
    m_indexBuffer.SetData(indices, 0, 0, m_indexBuffer.count);
}

コメント

タイトルとURLをコピーしました