Unity 的一道面试题 随机颜色

来源:互联网 发布:动画演示软件 编辑:程序博客网 时间:2024/05/22 13:11

题目:让场景中的Cube一秒更换一种颜色;
涉及的内容大致如下:
一个计时器
得到Cube的材质
写一个随机产生颜色的方法
Unity中颜色采用的RGB颜色标准 。在写随机产生颜色方法的时候,我们需要知道RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。红色绿色蓝色又称为三原色光,用英文表示就是R(red)、G(green)、B(blue)。在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2…直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。
所以RGB一共能产生256 x 256 x 256 = 16777216种颜色。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。
但是在Color这个类中,是0-1中的一个值。这个值 是亮度级/255得到的一个小数。
介绍了这么多,我们可以看看相关的代码

using UnityEngine;using System.Collections;public class RandomColor : MonoBehaviour {    // Use this for initialization    void Start () {    }    float timer;    // Update is called once per frame    void Update () {        timer -= Time.deltaTime;        if(timer<=0){            this.gameObject.GetComponent<MeshRenderer>().material.color = RandomColor1();            timer = 1;        }    }    public Color RandomColor1()    {        float r = Random.Range(0f,1f);        float g = Random.Range(0f,1f);        float b = Random.Range(0f,1f);        Color color = new Color(r,g,b);        return color;    }}

就是这样了,还是比较简单的。

1 0
原创粉丝点击