前言

本次文章将编写unity如何根据时间实现昼夜系统,也因此,本文章需要依托于前面文章的时间系统功能。
同样,这里只把重要的部分编写出来,具体的实现过程请到b站搜索本人的2d游戏开发-unity实现系列视频教程。

功能说明

本次的昼夜系统依托于时间系统,前面我已经将24分钟设置为游戏的一天,那么这次就根据不同的时间显示不同的亮度.
本次的不同时间亮度设置如下:

            21:00-05:00 保持最暗 06:01-12:00 逐渐变亮 12:01-15:00 保持最亮 15:01-20:59 降低亮度

实现原理

本次昼夜系统实现的原理如下:
在unity中,调节光线的RGB会导致光线的明暗程度不同,于是,本次文章依据于此进行制造。

实现过程

材质

要实现这个效果,需要给受光线影响的物体添加一个材质


光源

新建一个光源,我这里创建的是直射光源,然后给这个光源添加我下面的代码组件

代码

具体的实现代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class lightControll : MonoBehaviour
{// Start is called before the first frame update// 时间系统public GameObject timeSystem;// 获取光源private Light Light;void Start(){Light = GetComponent<Light>();}// Update is called once per framevoid Update(){CircadianSystem();}// 昼夜系统void CircadianSystem() {/**21:00-05:00 保持最暗 RGB(0,0,0)06:01-12:00 逐渐变亮 RGB(1~254,1~254,1~254)12:01-15:00 保持最亮 RGB(255,255,255)15:01-20:59 降低亮度 RGB(254~1,254~1,254~1)// 根据时间长度决定白天变亮和晚上变暗的速度06:01-12:00 6小时 360秒 254/360 = 0.70515:01-20:59 6小时 360秒 254/360 = 0.705*/// 实例化时间系统脚本TimeSystemContoller timeSystemContoller = timeSystem.GetComponent<TimeSystemContoller>();//int minutes = timeSystemContoller.showMinute;int seconds = timeSystemContoller.showSeconds;// 21:00 - 05:00if (minutes >=21 && minutes <=23) {Light.color = new Color(0/255f,0/255f,0/255f);}if (minutes>=0 && minutes <=4) {Light.color = new Color(0 / 255f, 0 / 255f, 0 / 255f);}// 06:01-12:00if (minutes>=5 && minutes <=11) {//当前经过了多长,在这个时间段int totalSeconds = (minutes - 5) * 60 + seconds;// 经过多少RGBfloat groundRGB = totalSeconds * (float)0.705;// 当前的RGB是多少float currentRGB = 1 + groundRGB;Light.color = new Color(currentRGB/255f, currentRGB / 255f, currentRGB / 255f);}// 12:01-15:00if (minutes>=12 && minutes <=14) {Light.color = new Color(255/255f,255/255f,255/255f);}// 15:01-20:59if (minutes>=15 && minutes<=20) {// 当前经过多长时间int totalSconds = (minutes - 15) * 60 + seconds;// 经过多少RGBfloat groundRGB = totalSconds * (float)0.705;// 当前RGBfloat currentRGB = 254 - groundRGB;// Light.color = new Color(currentRGB / 255f, currentRGB / 255f, currentRGB / 255f);}}
}

效果截图


结语

以上为我实现昼夜系统的过程,如需要更详细的教学,请到b站搜索本人的2d游戏开发-unity实现系列教学视频。

【2d游戏开发】实现昼夜系统相关推荐

  1. Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏

    Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏 即使是现在,很多初学游戏开发的同学,在谈到Unity的时候,依然会认为Unity只能用于制作3D游戏的.实际上,Unity在2013年发布 ...

  2. Unity 2D游戏开发快速入门(内部资料)

    Unity 2D游戏开发快速入门(内部资料) 试读样张:http://pan.baidu.com/s/1hqh5oqw Unity 2D游戏开发快速入门4 前  言 Unity是一款综合的游戏开发工具 ...

  3. 【Unity】Unity 2D游戏开发(一)U2D基础功能

    文章目录 Unity 2D游戏开发基础知识 Animation动画 SortingLayer层排序 Physics 2D物理2D Rigidbody 2D刚体 示例 1.点击鼠标发出子弹 2.子弹打中 ...

  4. 游戏开发 unity3d python_游戏研发系列 Unity3D/2D游戏开发从0到1 第2版.pdf

    作 者 :刘国柱著 出版发行 : 北京:电子工业出版社 , 2018.01 ISBN号 :978-7-121-33499-3 页 数 : 507 丛书名 : 游戏研发系列 原书定价 : 99.00 开 ...

  5. 2D游戏开发 - 配置SkyGameEngine2d环境

    2D游戏开发 - 配置SkyGameEngine2d环境 一.本项目需要准备的环境 二.下载引擎源码 三.打开工程 四.编译项目 五.运行示例游戏 SkyGameEngine2d - 探索 简洁 易用 ...

  6. 【2d游戏开发】unity实现UI框架搭建

    前言 前面一直比较忙,然后到现在才继续接游戏的文章,那么本次将带大家去搭建一个ui框架,同样,需要更具体的教学,可以到b站搜索本人的关于2d游戏开发-unity实现xxx的系列视频. 步骤 其实大致的 ...

  7. 2D游戏开发 - SkyGameEngine2d 引擎架构 | 目录结构 | 引擎入口点

    2D游戏开发 - SkyGameEngine2d 引擎架构 | 目录结构 | 引擎入口点 一.引擎架构 二.引擎目录 2.1 src目录介绍 三.项目目录 四.引擎框架入口点分析 4.1 main.c ...

  8. Unity 2D游戏开发视频教程 Unity 2D Game Developer Course Farming RPG

    Unity 2D游戏开发视频教程 Unity 2D Game Developer Course Farming RPG Unity 2D游戏开发课程农业RPG MP4 |视频:h264,1280×72 ...

  9. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

最新文章

  1. mvc中ajax的跳转,springmvc ajax 跳转的学习笔记
  2. bootstrap 固定最底部_bootstrap 固定底部导航自适应
  3. 实现一个登录:Mac+.NET 5+Identity+JWT+VS Code
  4. 填充table_Excel Power Query | 向下填充的逆过程
  5. Hadoop on Mac with IntelliJ IDEA - 5 解决java heap space问题
  6. Visual Studio Code打开项目
  7. 人工智能大火能否烧开智能家居这锅水?
  8. Android开发笔记(一百五十一)WebView与JavaScript交互的四种形式
  9. 2017-2018网络攻防第四周作业
  10. [Bootstrap-Table] 中的事件用例
  11. CenterLoss
  12. HTML中更改hr宽度高度颜色
  13. Android Studio 简单的登陆界面实现(含源码)
  14. 怎么用python画天气图_Python气象绘图教程(十五)—Cartopy_5
  15. Sql server中 如何用sql语句创建视图
  16. 第六章 Dubbo的源码解析
  17. R语言:时间序列ARIMA模型使用
  18. 电机精密运动控制专家电机驱动芯片TMC260
  19. Jackson 生成xml格式文件
  20. 【数据库基础笔记】3、约束和隔离

热门文章

  1. 数据治理:数据标准的6大建设步骤及实施分享
  2. avro schema php,Hadoop之AVRO
  3. Python-函数式编程模块itertools、functools、operator
  4. STN32入门学习 第五天
  5. minecraft1.16.5 Java版本添加mod以及局域网联机总结
  6. 这几个SpringBoot前后端分离项目(附源码),改改就能换钱。。。
  7. MP3,AAC,AC3技术比较
  8. 微型计算机内存条,微型机的RAM子系统-微计算机原理-电子发烧友网站
  9. java中Int范围越界检测
  10. 小学老师郭金东纵身一跃勇救落水男孩