U3D跳舞的线的运动方式

今天完了一下跳舞的线。觉得他的那种线段延伸,向前运动的效果很好看,所以打算自己用u3d做一下。

我估计这种线段的运动估计也是个《反应堆》这种方块的行为如出一辙。方块不是真的被切割,而是在下方cube的边界处重现生成cube(原始)-cube(覆盖)的一个全新的体积的cube'。

《反应堆》

    public GameObject targetPrefabs;//预制体

    public float speed = 1;//速度

    public Vector3 pos;

    public Material material;//材质

    private bool turn = true;

    // Update is called once per frame

    void Update () {

            this.pos = this.targetPrefabs.transform.position;

            this.targetPrefabs.transform.Translate(Vector3.forward * speed * Time.deltaTime);

            GameObject obj2 = GameObject.CreatePrimitive(PrimitiveType.Cube);

            obj2.transform.position = pos;

            obj2.GetComponent().material = this.material;

            obj2.GetComponent().isTrigger = true;

        if (Input.GetKeyDown(KeyCode.Space))

        {

            if (this.turn)

            {

                this.targetPrefabs.transform.eulerAngles = new Vector3(0, -90, 0);

                this.turn = !this.turn;

            }

            else

            {

                this.targetPrefabs.transform.eulerAngles = new Vector3(0, 0, 0);

                this.turn = !this.turn;

            }

        }

    }

就是沿着cube的前进方向不断创建cube。额就是这么直接。

当然你也可以用Instance方法来代替生成原型物体的方法,创建线条的身体的prefabs。这样你就不用为原型物体指定材质。

这个线头必须分开,因为线头的所需要携带写脚本可不止这么多,通常会含有射线检测。刚体等,用于检测是否飞出地面和发生碰撞,不这样只会耗费更多性能和发生奇怪的逻辑问题。

对了,如果你的线段不需要转折或者其他特别的操作,强烈建议给创建线的身体的时机加上step,也就是隔断时间创建。

在相机添覆盖全图的cube,render取消勾选,检测碰撞在相机跟随运动的时候把线段超出摄像机的身体移除。

感谢关注~

goodnight~

负重前行~

你可能感兴趣的:(U3D跳舞的线的运动方式)