示例#1
0
    //update layer gameobject content when map initialized , moved.
    private void LayerUpdate()
    {
        //check initialized
        var visualizer = mapToEdit.MapVisualizer;

        visualizer.OnMapVisualizerStateChanged += (s) =>
        {
            if (this == null)
            {
                return;
            }

            if (s == ModuleState.Finished)
            {
                if (this.Lock)
                {
                    List <UnwrappedTileId> tileIds = mapToEdit.MapVisualizer.ActiveTiles.Keys.ToList();
                    foreach (LayerMetaphor lm in layerMetaphorsActived)
                    {
                        lm.update(tileIds);
                    }
                    foreach (LayerMetaphor lm in layerMetaphorsDisActived)
                    {
                        lm.update(tileIds);
                    }
                    this.Lock = false;
                    if (!oldVersion)
                    {
                        handle.getMetaphorObject().GetComponent <FaceCamera>().enabled = true;
                        bin.getMetaphorObject().GetComponent <FaceCamera>().enabled    = true;
                    }
                }
            }
            else if (s == ModuleState.Working)
            {
                this.Lock = true;
                if (!oldVersion)
                {
                    handle.getMetaphorObject().GetComponent <FaceCamera>().enabled = false;
                    bin.getMetaphorObject().GetComponent <FaceCamera>().enabled    = false;
                }
            }
        };
    }
 public override float distanceToCenter(Vector3 pinchingPos)
 {
     if (handle == null)
     {
         return(base.distanceToCenter(pinchingPos));
     }
     else
     {
         Collider coll       = worldObject.GetComponent <Collider>();
         Vector3  handlePos  = handle.getMetaphorObject().transform.position;
         Vector3  collCenter = coll.bounds.center;
         float    distance   = Vector3.Distance(new Vector3(handlePos.x, collCenter.y, handlePos.z), pinchingPos);
         return(distance);
     }
 }