示例#1
0
    // 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);
    }
示例#2
0
    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);
    }
示例#3
0
 /// <summary>
 /// 移除点光源
 /// </summary>
 /// <param name="light"></param>
 public void RemovePointLight(PointLightParam light)
 {
     pointLights.Remove(light);
 }
示例#4
0
 /// <summary>
 /// 增加点光源
 /// </summary>
 /// <param name="light">光源参数</param>
 public void AddPointLight(PointLightParam light)
 {
     pointLights.Add(light);
 }
示例#5
0
        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;
                }
            }
        }