LoginSignup
2
1

More than 5 years have passed since last update.

Unityでリンクスタートをつくってみた

Last updated at Posted at 2018-01-03

SAOより「リンクスタート画面」の長めバージョンを作成
https://www.youtube.com/watch?v=stGJWLFh6vM

LinkStart.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LinkStart : MonoBehaviour {

    [SerializeField] GameObject m_godRayPrefab;
    [SerializeField] GameObject m_godRay;

    float rayStartPos = 200f;
    float tunnelRadius = 12f;

    float godraySpeed = 80f;
    float godraySpeedRate = 0.5f; // レイの速度を徐々に速く

    float minWaitTime = 0f;
    float maxWaitTime = 0.2f;
    float waitTimeRate = 0.002f; // 生成スパンを徐々に短く

    void Start() {
        StartCoroutine ("Fire");
    }

    IEnumerator Fire() {
        for(int i = 0; i < 1000; i++) {

            // position
            Vector3 pos = Random.insideUnitCircle * tunnelRadius;
            pos.z = rayStartPos;

            var godRay = Instantiate (m_godRayPrefab, pos, Quaternion.Euler(-90f,0f,0f));
            godRay.transform.parent = m_godRay.transform;

            // color
            Color color = new Color(Random.value, Random.value, Random.value);
            godRay.GetComponent<Renderer> ().material.color = color;

            // addforce
            godRay.GetComponent<Rigidbody>().AddForce(
                godRay.transform.up * godraySpeed * Random.Range(1f,1.5f),
                ForceMode.VelocityChange
            );

            if (minWaitTime < maxWaitTime) {
                godraySpeed += godraySpeedRate;
                maxWaitTime -= waitTimeRate;
            } else {
                // 生成スパンが最短になったらシーンをロード
                Invoke ("GoNextScene", 5f);
            }

            yield return new WaitForSeconds(Random.Range(minWaitTime,maxWaitTime));
        }
    }

    void GoNextScene() {
        // コルーチンを止める場合
        // StopCoroutine ("Fire");

        // fade
        SteamVR_LoadLevel.Begin("NextScene");
    }
}

トーラス形のトンネルをつくり、その内側に生成されたレイは削除するようにすることで、自分の周りだけをレイが飛んでいくようにした。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1