// Use this for initialization void Start() { pointLight = new PointLightParam(); pointLight.position = transform.position; pointLight.color = Color.yellow; pointLight.range = 0.5f; LightManager lm = Camera.main.GetComponent <LightManager>(); lm.AddPointLight(pointLight); }
protected override void Start() { base.Start(); pointLight = new PointLightParam(); pointLight.position = transform.position; pointLight.color = Color.white * 0.5f; pointLight.range = 3.0f; LightManager lm = Camera.main.GetComponent <LightManager>(); lm.AddPointLight(pointLight); }
/// <summary> /// 移除点光源 /// </summary> /// <param name="light"></param> public void RemovePointLight(PointLightParam light) { pointLights.Remove(light); }
/// <summary> /// 增加点光源 /// </summary> /// <param name="light">光源参数</param> public void AddPointLight(PointLightParam light) { pointLights.Add(light); }
public void HandleObjectExtraParams(Message m) { const ushort FlexiEP = 0x10; const ushort LightEP = 0x20; const ushort SculptEP = 0x30; const ushort ProjectionEP = 0x40; const ushort ExtendedMeshEP = 0x70; var req = (ObjectExtraParams)m; if (req.CircuitSessionID != req.SessionID || req.CircuitAgentID != req.AgentID) { return; } IAgent agent; if (!Agents.TryGetValue(req.AgentID, out agent)) { return; } foreach (var data in req.ObjectData) { #if DEBUG m_Log.DebugFormat("ObjectExtraParams localid={0}", data.ObjectLocalID); #endif ObjectPart part; if (!Primitives.TryGetValue(data.ObjectLocalID, out part)) { continue; } if (!CanEdit(agent, part.ObjectGroup, part.ObjectGroup.GlobalPosition)) { continue; } switch (data.ParamType) { case FlexiEP: if (!data.ParamInUse) { FlexibleParam flexi = part.Flexible; flexi.IsFlexible = false; part.Flexible = flexi; } else { part.Flexible = FlexibleParam.FromUdpDataBlock(data.ParamData); } break; case LightEP: if (!data.ParamInUse) { PointLightParam light = part.PointLight; light.IsLight = false; part.PointLight = light; } else { part.PointLight = PointLightParam.FromUdpDataBlock(data.ParamData); } break; case SculptEP: if (data.ParamInUse && data.ParamData.Length >= 17) { byte[] param = data.ParamData; ObjectPart.PrimitiveShape shape = part.Shape; shape.SculptMap = new UUID(param, 0); shape.SculptType = (PrimitiveSculptType)(param[16] & 0x3F); shape.IsSculptInverted = (param[16] & 0x40) != 0; shape.IsSculptMirrored = (param[16] & 0x80) != 0; part.Shape = shape; } break; case ProjectionEP: if (!data.ParamInUse) { ProjectionParam proj = part.Projection; proj.IsProjecting = false; part.Projection = proj; } else { part.Projection = ProjectionParam.FromUdpDataBlock(data.ParamData); } break; case ExtendedMeshEP: if (!data.ParamInUse) { ExtendedMeshParams mesh = part.ExtendedMesh; mesh.Flags = ExtendedMeshParams.MeshFlags.None; part.ExtendedMesh = mesh; } else { part.ExtendedMesh = ExtendedMeshParams.FromUdpDataBlock(data.ParamData); } break; } } }