美文网首页
U3D跳舞的线的运动方式

U3D跳舞的线的运动方式

作者: 与时间赛跑_ | 来源:发表于2019-04-04 21:00 被阅读0次

    今天完了一下跳舞的线。觉得他的那种线段延伸,向前运动的效果很好看,所以打算自己用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<MeshRenderer>().material = this.material;

                obj2.GetComponent<BoxCollider>().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跳舞的线的运动方式

          本文链接:https://www.haomeiwen.com/subject/rxqciqtx.html