示例#1
0
    private void CreateAndStoreMiscObjectsInHex(Hex hex, Layout hexLayout, EditorMiscHexData data, Sprite backgroudSprite)
    {
        var backgroundGO = new GameObject("spriteBackGround", typeof(SpriteRenderer));

        var fixPos   = hexLayout.HexToWorld(hex);
        var position = new Vector2((float)fixPos.x, (float)fixPos.y);

        backgroundGO.transform.position = new Vector3(position.x, position.y, position.y);

        var backgroundRenderer = backgroundGO.GetComponent <SpriteRenderer>();

        backgroundRenderer.sprite = backgroudSprite;

        spriteObjForMiscMap.Add(backgroundGO);



        var miscTileGO = new GameObject("Misc tile", typeof(EditorMiscHexTile));
        var miscTile   = miscTileGO.GetComponent <EditorMiscHexTile>();

        miscTile.Init(this, data, hex);

        miscTileGO.GetComponent <MeshFilter>().sharedMesh       = MeshUtils.QuadMesh;
        miscTileGO.GetComponent <MeshRenderer>().sharedMaterial = data.hexMaterial;
        //-1 in the Z.
        miscTileGO.transform.position = new Vector3(position.x, position.y, position.y - 1);

        activeEditorMiscTiles.Add(hex, miscTile);
    }
示例#2
0
    public void Init(MapEditor editor, EditorMiscHexData data, Hex hex)
    {
        this.editor = editor;

        this.hex = hex;

        meshRenderer = GetComponent <MeshRenderer>();
        meshRenderer.sharedMaterial = data.hexMaterial;
    }
示例#3
0
    private void Update()
    {
        if (!Application.isPlaying)
        {
            if (meshRenderer.sharedMaterial != prevRendererMaterial)
            {
                Debug.Assert(editor != null, "You must call the Init function when creating this object in order to make it work as intended!");

                if (editor.MiscDataLookUpTable.TryGetValue(meshRenderer.sharedMaterial, out EditorMiscHexData newData))
                {
                    data = newData;
                    prevRendererMaterial = meshRenderer.sharedMaterial;
                }
                else
                {
                    Debug.LogWarning("The material you put on the tile is invalid! Returning the mesh renderer to his previous material");
                    meshRenderer.sharedMaterial = prevRendererMaterial;
                }
            }
        }
    }