1.新建材质
材质类型改为skybox,并且选择cubemap值
2.导入之前的爆破人的包
3.将材质改颜色,将天空设置为暗蓝色,并且颜色tint color设置成暗蓝色
这样更有利于观察灯光效果
注意这里的cubemap是导入爆破人包里面自动会带的俩种资源。
将材质拖入窗口中,天空就会变成暗蓝色
4.新建一个小房间,四个长方形围住
5.新建一个球体,重命名为light,将标签新建light,选择light标签
6.在light下面新建一个点光源,
7.新建一个camera脚本文本,并将挂载到摄像机上面
8.点击相机,将相机的视角对齐到视图中
9.编写camera脚本文件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class camera : MonoBehaviour
{
//拿到摄像机的组件
private Camera mainCamera;
//初始化光线变量
private Ray ray;
void Start()
{
//先拿到当前摄像机组件
mainCamera = GetComponent<Camera>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Mouse0))
{
//创建一个射线 从某个点发出--鼠标点击的点
//Debug.Log(Input.mousePosition); //鼠标点击的位置 --z轴方向是没有变的,拿到的是x和y轴的变化的值
//从这个点Input.mousePosition-鼠标点击的位置发射一条直线出来
ray = mainCamera.ScreenPointToRay(Input.mousePosition);
//获取碰撞的结果
//创建一个信息收集器 hit--碰撞的物体
RaycastHit hit;
//判断是否碰撞到
bool res = Physics.Raycast(ray, out hit); //这个表示碰撞结果返回的布尔值,同时将碰撞到的物体返回出来给你
//判断碰撞是否为小球
//只有碰撞了才有理论可写
if (res && hit.collider.tag == "light")
{
Light childLight = hit.collider.GetComponentInChildren<Light>();
childLight.enabled = childLight.enabled ? false : true;
}
}
}
}