Exemplo n.º 1
0
        private void Awake()
        {
            singleton = this;

            while (IDs.Count <= ID)
            {
                IDs.Add(null);
            }

            IDs[ID] = this;
        }
Exemplo n.º 2
0
        private void UpdatePosition(float scaleMultiplier = 1.0f)
        {
            if (currentObject == null)
            {
                return;
            }

            if (rectTransform == null)
            {
                rectTransform = GetComponent <RectTransform> ();
            }

            if (lastTemplate == null)
            {
                return;
            }

            var renderLayer = ItemRendererLayer.Get(id);
            var meshFilter  = currentObject.GetComponent <MeshFilter> ();

            var rectTransformCenter = rectTransform.position;

            var point = new Vector2(rectTransformCenter.x, rectTransformCenter.y);

            var screenRect = RectTransformUtility.PixelAdjustRect(rectTransform, null);

            var ray = renderLayer.layerCamera.ScreenPointToRay(point);

            float maxSize = Mathf.Max(meshFilter.mesh.bounds.size.x, meshFilter.mesh.bounds.size.y,
                                      meshFilter.mesh.bounds.size.z) / lastTemplate.RenderScale;

            float heightPerc = ((screenRect.height / Screen.height) * (Screen.height / 2560.0f)) *
                               renderLayer.layerCamera.orthographicSize * 3.0f;

            float newScale = (heightPerc / maxSize) * scaleMultiplier;

            currentObject.transform.position   = ray.GetPoint(20 - (Height * 2));
            currentObject.transform.position  -= meshFilter.mesh.bounds.center * newScale;
            currentObject.transform.localScale = new Vector3(newScale, newScale, newScale);
        }
Exemplo n.º 3
0
        private void RenderPrefab(GameObject prefab)
        {
            if (currentObject != null)
            {
                Destroy(currentObject);
            }

            var renderLayer = ItemRendererLayer.Get(id);

            currentObject       = Instantiate(prefab, renderLayer.objectHolder.transform) as GameObject;
            currentObject.layer = renderLayer.gameObject.layer;

            var itemMesh = currentObject.GetComponent <MeshRenderer> ();

            itemMesh.receiveShadows            = false;
            itemMesh.shadowCastingMode         = ShadowCastingMode.Off;
            itemMesh.lightProbeUsage           = LightProbeUsage.Off;
            itemMesh.allowOcclusionWhenDynamic = false;

            currentObject.transform.position += new Vector3(3000, 4000, 4000);

            UpdatePosition();
        }