带有喜感的金字塔

来源:互联网 发布:开发游戏的编程语言 编辑:程序博客网 时间:2024/04/29 10:34

大家不要觉得打印金字塔很难,今天我就来给你们破了这层神秘感,同时加上点喜感。下面的图就是带有喜感的金字塔!
这里写图片描述

我们在打印金字塔的时候我们首先要考虑,我们要怎么打,是自上而下打印,还是自下而上打印。个人爱好从下往上打印

第一步

我们首先打印出最底层
核心代码

 for (int i = 1; i <= count; i++)        {            for (int j = 1; j <= count; j++)            {                GameObject go = Instantiate(obj, new Vector3(i , 0, j ), Quaternion.identity) as GameObject;            }        }

第二步

我们需要在原来的基础上在外面再扩展一层循环,用来控制金字塔的高度
核心代码如下

for (int k = 0; k < 10; k++)        {            for (int i = 1; i <= count - k; i++)            {                for (int j = 1; j <= count - k; j++)                {                    GameObject go = Instantiate(obj, new Vector3(i + k * 0.5f, k, j + k * 0.5f), Quaternion.identity) as GameObject;                }            }        }

第三步

上面的代码都是解决了金字塔的神秘感,下面我们给金字塔加点喜感,个人的品味比较低,不喜勿喷。

完整的代码

using UnityEngine;using System.Collections;public class JZT : MonoBehaviour {    int count = 10;    // Use this for initialization    void Start () {        GameObject obj = Resources.Load("Cube") as GameObject;        print(obj.transform.position);        Color color;        for (int k = 0; k < 10; k++)        {        //给每一层一种颜色             color = RandomColor();            for (int i = 1; i <= count - k; i++)            {                for (int j = 1; j <= count - k; j++)                {                    GameObject go = Instantiate(obj, new Vector3(i + k * 0.5f, k, j + k * 0.5f), Quaternion.identity) as GameObject;                    go.GetComponent<MeshRenderer>().material.color = color;                }            }        }    }    //为每一次随机产生一种颜色    Color RandomColor()    {        float r = Random.Range(0f,1f);        float g = Random.Range(0f, 1f);        float b = Random.Range(0f, 1f);        print(r+" " +g+" "+b);        return new Color(r,g,b,1);    }
0 0
原创粉丝点击