Unity 游戏光明之光笔记
第一章 欠缺场景
- 导入资地形、地貌资源,新建场景,导入地形、地貌 prefab
- 设置相机与视线匹配
选中主摄像机,点选菜单栏中 GameObject > Align With View - 增加灯光
Direction light > Intensity 光照强度
- 增加鼠标指针
File > Build Settings > Player Settings - 增加水面
- 实现镜头迟缓拉近的成果
public float speed = 10; // 设置速度
private float endZ = -20; // 设置完结坐标
void Start () {void Update () {
// 判断坐标小于完结坐标
if (transform.position.z < endZ) {
// 还没有达到目标地位,须要挪动
transform.Translate(Vector3.forward*speed*Time.deltaTime);
}
}
- 增加雾
Window > Rendering > Lighting Settings > other Settings -
应用 UGUI 和红色背景给场景增加渐显成果
增加 UI >image 给 image 增加 Canvas Group 组件
增加一个管制渐显的脚本,在主摄像头中增加办法,其余的动画成果相似这样制作 press 的动画成果能够应用 timeline 制作UIFadeTest.Instance.UIShow();
public float fadeSpeed = 10; // 速度
private CanvasGroup canvasGroup;
private float alpha = 1.0f;
private static UIFadeTest instance;
// 设置单例
public static UIFadeTest Instance
{get { return instance;}
}
void Start()
{
instance = this;
canvasGroup = this.gameObject.GetComponent<CanvasGroup>();}
// Update is called once per frame
void Update()
{if (alpha != canvasGroup.alpha)
{canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, alpha, fadeSpeed * Time.deltaTime);
if (Mathf.Abs(canvasGroup.alpha - alpha) < 0.01f)
{canvasGroup.alpha = alpha;}
}
}
public void UIShow() {
alpha = 0;
canvasGroup.blocksRaycasts = false;
}
}
- 增加鼠标点击事件
在点击 Press 后显示按钮,先让 newgame 和 loadgame 按钮不激活
private bool isAnyKeyDown = false;// 示意是否有任何按键按下
private GameObject buttonContainer;
void Start()
{buttonContainer = this.transform.parent.Find("buttonContainer").gameObject;
}
// Update is called once per frame
void Update()
{
// 断定没有按键按下
if (isAnyKeyDown == false)
{
// 如果按下显示案件
if (Input.anyKey)
{
{ShowButton();
}
}
}
// 开始和加载按钮显示办法
void ShowButton()
{buttonContainer.SetActive(true);
this.gameObject.SetActive(false);
isAnyKeyDown = true;
}
}
newgame 和 loadgame 按钮鼠标事件
1 游戏数据的保留,和场景之间游戏数据的传递应用 PlayerPrefs
2 场景的分类
2.1 开始场景
2.2 角色抉择界面
2.3 游戏玩家打怪的界面,就是游戏理论的运行场景
// 开始新游戏
public void OnNewGame() {PlayerPrefs.SetInt("DataFromSave", 0);
// 加载咱们的抉择角色的场景 2
}
// 加载曾经保留的游戏
public void OnLoadGame() {PlayerPrefs.SetInt("DataFromSave", 1); //DataFromSave 示意数据来自保留
// 加载咱们的 play 场景 3
}
- 给开始场景增加背景声音和按钮点击的声音
在主摄像机增加 BGM 音乐
在 newgame 和 loadgame 按钮上别离增加 playsound 脚本