情景:模型prefab里面添加了灯光,在角色选择的时候,开发的实现方式是,添加新的camera(设置了cullingmask,设置为动态分配新的layerA) 对着新加载的角色(动态分配新的layerA),原来的模型事实上还在场景中,只是它layer不在camera的cullingmask里所以看不见,问题是模型里的灯光也有自己的cullingmask,导致灯光效果叠加了,这个时候就需要在灯光里添加这样一个脚本,使灯光的cullingmask也设置为动态分配的layerA。
脚本如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lightcullingmask : MonoBehaviour {
// Use this for initialization
void Start () {
int _id;
_id = gameObject.layer;
var _light = this.GetComponent<Light>();
_light.cullingMask = 1 << _id ;
}
// Update is called once per frame
void Update () {
}
}