Unity-技术美术 199-208
199 - 光照简介
Demo项目资源:迅雷云盘 提取码:7ca4
视频系列地址:白熊游戏-chutianbo的个人空间-白熊游戏-chutianbo个人主页-哔哩哔哩视频
Unity 技术美术入门系列 19-Lighting简介 官方教程链接:Get started with lighting - Unity Learn
本节配套文档:图形-技术美工相关/09-lighting光照简介.md · chutianshu/AwesomeUnityTutorial - Gitee.com
200 - 光照设置
Demo项目资源:迅雷云盘 提取码:7ca4
视频系列地址:白熊游戏-chutianbo的个人空间-白熊游戏-chutianbo个人主页-哔哩哔哩视频
Unity 技术美术入门系列 20-光照设置 官方教程链接:Get started with lighting - Unity Learn
本节配套文档:图形-技术美工相关/09-lighting光照简介.md · chutianshu/AwesomeUnityTutorial - Gitee.com
200.1 光照烘焙和实时
提前渲染完毕不会变换.
即使位置移动了,灯光也不会变化.
200.2 实时&混合
与烘焙相反,会实时变化.
201 - 定向光和天空盒设置室外场景光照
201.1 天空盒材质
创建天空盒材质
设置天空盒材质
在Lighting面板中配置天空盒材质
调整参数
Sun Size : 太阳大小
Atmosphere Thickness : 大气厚度
Sky Tint : 天空颜色
Groud : 地面颜色
Exposure : 曝光度
201.2 夜间效果
旋转 Sunlight
配置天空盒材质
202 - 日夜更替1
Demo项目资源:迅雷云盘 提取码:7ca4
视频系列地址:白熊游戏-chutianbo的个人空间-白熊游戏-chutianbo个人主页-哔哩哔哩视频
Unity 技术美术入门系列 22-日夜更替-1
官方教程链接:Configure the Directional Light and skybox - Unity Learn
本节配套文档:图形-技术美工相关/10-定向光和天空盒.md · chutianshu/AwesomeUnityTutorial - Gitee.com
202.1 创建TextMeshPro
创建textMeshPro
设置轴心和位置.老生常谈了.
Shift & Alt 右上角.
居中 & 调整字体大小为45
202.2 创建脚本进行时间流逝
创建空游戏物体,TimeController
添加脚本
编写脚本 TimeController.cs
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class TimeController : MonoBehaviour
{//添加序列化字段,表示UI中富文本框,用来显示24小时制时间[SerializeField]private TextMeshProUGUI timeText;//游戏启动时的起始时间[SerializeField]private float startHour;//表示当前时刻时间private DateTime currentTime;private TimeSpan sunriseTime;private TimeSpan sunsetTime;//日出时刻[SerializeField]private float sunriseHour;//日落时刻[SerializeField]private float sunsetHour;//时间速度[SerializeField]public float timeSpped;void Start(){currentTime = DateTime.Now.Date + TimeSpan.FromHours(startHour);Debug.Log(startHour);Debug.Log(TimeSpan.FromHours(startHour));//sunriseTime = TimeSpan.FromHours(sunriseHour);//sunsetTime = TimeSpan.FromHours(sunsetHour);}// Update is called once per framevoid Update(){UpdateTime();}private void UpdateTime() {currentTime = currentTime.AddSeconds(Time.deltaTime * timeSpped);if (timeText != null) {timeText.text = currentTime.ToString("HH:mm");}}
}
配置参数
203 - 日夜更替2
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class TimeController : MonoBehaviour
{//添加序列化字段,表示UI中富文本框,用来显示24小时制时间[SerializeField]private TextMeshProUGUI timeText;//游戏启动时的起始时间[SerializeField]private float startHour;//表示当前时刻时间private DateTime currentTime;private TimeSpan sunriseTime;private TimeSpan sunsetTime;//日出时刻[SerializeField]private float sunriseHour;//日落时刻[SerializeField]private float sunsetHour;//时间速度[SerializeField]public float timeSpped;//太阳光[SerializeField]private Light sunLight;void Start(){currentTime = DateTime.Now.Date + TimeSpan.FromHours(startHour);Debug.Log(DateTime.Now.Date);Debug.Log(startHour);Debug.Log(TimeSpan.FromHours(startHour));sunriseTime = TimeSpan.FromHours(sunriseHour);sunsetTime = TimeSpan.FromHours(sunsetHour);}// Update is called once per framevoid Update(){UpdateTime();RotateSunLight();}//更新时间显示private void UpdateTime() {currentTime = currentTime.AddSeconds(Time.deltaTime * timeSpped);if (timeText != null) {timeText.text = currentTime.ToString("HH:mm");}}//旋转太阳光private void RotateSunLight() {float sunLightRotate;//如果当前时间是白天if (currentTime.TimeOfDay > sunriseTime && currentTime.TimeOfDay < sunsetTime){//日升到日落总时间差TimeSpan sunriseToSunsetDuration = CalculateTimeDifference(sunriseTime, sunsetTime);//从日升到当前时间的时间差TimeSpan timeSinceSunrise = CalculateTimeDifference(sunriseTime, currentTime.TimeOfDay);//算出当前时间差和总时间的比率double percentage = timeSinceSunrise.TotalMinutes / sunriseToSunsetDuration.TotalMinutes;sunLightRotate = Mathf.Lerp(0, 180, (float)percentage);}else {//日升到日落总时间差TimeSpan sunsetToSunRiseDuration = CalculateTimeDifference(sunsetTime, sunriseTime);//从日升到当前时间的时间差TimeSpan timeSinceSunset = CalculateTimeDifference(sunsetTime, currentTime.TimeOfDay);//算出当前时间差和总时间的比率double percentage = timeSinceSunset.TotalMinutes / sunsetToSunRiseDuration.TotalMinutes;//计算旋转角度sunLightRotate = Mathf.Lerp(180, 360, (float)percentage);}//根据当前时间,将表示日光的定向光旋转到一定角度 , 绕X轴进行旋转sunLight.transform.rotation = Quaternion.AngleAxis(sunLightRotate, Vector3.right);}//自定义计算时间差方法private TimeSpan CalculateTimeDifference(TimeSpan fromTime, TimeSpan toTime) { TimeSpan diff = toTime - fromTime;if (diff.TotalSeconds < 0) {diff += TimeSpan.FromHours(24);}return diff; }
}
204 - 日夜更替3
添加一些功能 - 路灯. 白天时熄灭,黑天时亮起.
204.1 设置标签
设置灯的标签为 "StreetLampLight"
204.2 TimeController.cs
stem;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class TimeController : MonoBehaviour
{//太阳光[SerializeField]private Light sunLight;//控制街灯是否可用[SerializeField]private bool streetLampLightEnabled;void Start(){currentTime = DateTime.Now.Date + TimeSpan.FromHours(startHour);sunriseTime = TimeSpan.FromHours(sunriseHour);sunsetTime = TimeSpan.FromHours(sunsetHour);}//旋转太阳光private void RotateSunLight() {float sunLightRotate;//如果当前时间是白天if (currentTime.TimeOfDay > sunriseTime && currentTime.TimeOfDay < sunsetTime){//如果街灯可用,白天关闭灯光if (streetLampLightEnabled == true){//返回指定标签的所有游戏对象GameObject[] streetLamps = GameObject.FindGameObjectsWithTag("StreetLampLight");//遍历数组foreach (GameObject streetLamp in streetLamps) { //获取符合条件的游戏对象光源组件Light streetLampLight = streetLamp.GetComponent<Light>();//如果不为空if (streetLampLight != null) {streetLampLight.enabled = false;} }}}else {//如果街灯可用,夜晚开启灯光if (streetLampLightEnabled == true){//返回指定标签的所有游戏对象GameObject[] streetLamps = GameObject.FindGameObjectsWithTag("StreetLampLight");//遍历数组foreach (GameObject streetLamp in streetLamps){//获取符合条件的游戏对象光源组件Light streetLampLight = streetLamp.GetComponent<Light>();//如果不为空if (streetLampLight != null){streetLampLight.enabled = true;}}}}}
}
205 - 光照常用设置
视频系列地址:白熊游戏-chutianbo的个人空间-白熊游戏-chutianbo个人主页-哔哩哔哩视频
Unity 技术美术入门系列 25-光照常用设置-1
官方教程链接:Get started with lighting - Unity Learn
本节配套文档:图形-技术美工相关/11-光照常用设置和经验总结.md · chutianshu/AwesomeUnityTutorial - Gitee.com
207 - 墓地,室外场景布光练习
视频系列地址:白熊游戏-chutianbo的个人空间-白熊游戏-chutianbo个人主页-哔哩哔哩视频
Unity 技术美术入门系列 27-室外场景布光练习
官方教程链接:Get started with lighting - Unity Learn
本节配套文档:图形-技术美工相关/11-光照常用设置和经验总结.md · chutianshu/AwesomeUnityTutorial - Gitee.com
207.1 导入项目
208 - 阴影设置
视频系列地址:白熊游戏-chutianbo的个人空间-白熊游戏-chutianbo个人主页-哔哩哔哩视频
Unity 技术美术入门系列 28-阴影设置1
官方教程链接:https://learn.unity.com/tutorial/configure-shadows-in-your-scene
本节配套文档:图形-技术美工相关/13-场景中配置阴影.md · chutianshu/AwesomeUnityTutorial - Gitee.com
Unity-技术美术 199-208相关推荐
- 什么是Unity技术美术
技术美术,英文名是Technical Art,简称TA. 说白了就是一群既懂程序又懂美术的人. 至于技术美术是属于程序还是属于美术我们在这里不做过多讨论,要不然会打起来的... 反正我认为技术美术就是 ...
- 来自Riot 的一份游戏美术教程(五):技术美术
引言 前段时间,Riot Games推出了一个针对游戏美术的系列视频:So you wanna make games??这一系列的特点是短小精悍,每集只有十分钟,却囊括了游戏美术的各个方面,对于新手来 ...
- 颠覆游戏开发,引领行业革命,从 Unite 2019 看 Unity 技术亮点
在谈及 Unity 引擎时,或许不少开发者对其还停留在游戏开发的固有认知中.事实上,Unity 在"实时 3D 内容创作"的伟大航路上,已向更为广阔的全行业领域的星辰大海前进. 从 ...
- 【技术美术图形部分】2.2 模型与材质基础
记录之前膜拜一下这节课的大佬,才大三,我一个研二菜狗留下不学无术的泪水! May佬提到,这次课程安排的目的是给美术同学一个缓冲的空间,我的话在写这篇学习笔记就尽量加入一些自己的理解. 友情提示!才发现 ...
- TA(技术美术)宝藏网站
TA(技术美术)宝藏网站 我们不生产TA我们只是TA的搬运工(感谢马甲大佬总结!?) T部分(技术相关) 1.Shadertoy 2.GLSL SandboX 3.candycat的博客 4.关于ra ...
- 【技术美术图形部分】纹理基础1.0-纹理管线
目录 1 纹理三大问 1.1 What--针对物体表面属性进行"建模" 纹理 Texture 纹理值 Texture Value 纹素 Texels 1.2 Why--降低建模工作 ...
- 从0开始的技术美术之路(美术篇)(一)美术理论基础
本篇参考B站视频 "技术美术百人计划"·霜狼_may : <视觉艺术用光-在艺术与设计中理解与运用光线>-理查德-约特 本篇主要用于自我复习,会掺入一些个人观点,如有疑 ...
- 3D美术人员Technical Artist(TA技术美术)的学习之旅(2)
接着之前的内容,第一章我说过了(什么是TA;为什么需要TA;TA需要做什么),相信各位也对TA有了一定浅层次的了解. 但是肯定也有很多人会觉得很困惑,那么你说了这么多,那我们该怎么做呢? 对于这个问题 ...
- 庄懂的技术美术入门课系列——学习笔记
关AO的知识之前涉及到就# 庄懂的技术美术入门课系列--学习笔记 本系列旨记录看视频学习时的一些看个人的理解和思考 1.三色混合的环境光 基本思路: 物体的环境光可以想象成是在物体四周全方位向物体射出 ...
- 一道技术美术的面试题
一道技术美术的面试题 https://zhuanlan.zhihu.com/p/27344672 一道技术美术的面试题 王滕昊 游戏开发 话题的优秀回答者 最近看越来越多的知乎小伙伴关注TA的这个 ...
最新文章
- 《Redis入门指南(第2版)》一第2章 准备
- 剑指offer5 从尾到头打印链表
- 分布式文件系统Hadoop
- 常见的面试思考题(MARK)
- DELL R740XD 开启 TPM功能
- mysql 硬负载_为啥单机MySQL又遭遇瓶颈?MySQL主从复制替你解决单机问题
- struts2静态方法和动态方法调用
- 表格字段居左居右规范_Excel之规范数据
- Hibernate关联映射-数据对象三种关系
- 数学好的男生适合学计算机吗,数学好的男生适合读什么专业 2021前景好吗
- Java面向对象概述
- Panda处理文本和时序数据?首选向量化
- linux下getrlimit与sysconf函数
- linux var run目录,PXE系列文章(16) - Linux /run 和 /var/run 目录介绍
- 如何找回Oracle所有用户丢失的密码
- UVA11413 Fill the Containers【二分搜索】
- vs不能调试_20200717调试记录(五十四)
- 怎么确认mysql正确安装_怎么确认mysql是否安装好了
- ANSYS18.2安装教程
- google四件套之Dagger2。从入门到爱不释手,之:Dagger2华丽使用在MVP框架中