Beispiel #1
0
    public void CreateMapObject(int tileX, int tileY, eMapObjectType type, string name)
    {
        TileSystem tileSystem = TileSystem.Instance;
        GameObject prefab     = GetPrefabByType(type);
        GameObject go         = Instantiate(prefab);

        go.InitTransformAsChild(tileSystem.GetTilemap(eTilemapType.GROUND).transform);
        eTileLayer layer     = eTileLayer.NONE;
        MapObject  mapObject = null;

        switch (type)
        {
        case eMapObjectType.ITEM:
            ItemObject itemObject = go.AddComponent <ItemObject>();
            Item       item       = Resources.Load <Item>("Items/" + name);
            itemObject.Init(item);

            mapObject = itemObject;
            layer     = eTileLayer.ITEM;
            break;
        }

        TileCell tileCell = tileSystem.GetTileCell(tileX, tileY);

        if (null != tileCell)
        {
            tileCell.SetObject(mapObject, layer);
        }
    }
Beispiel #2
0
    public Character CreateCharacter(int tileX, int tileY, string scriptName, string resourceName)
    {
        TileSystem tileSystem = TileSystem.Instance;

        string filePath = "Prefabs/Character/" + resourceName;

        GameObject charPrefabs     = Resources.Load <GameObject>(filePath);
        GameObject characterObject = Instantiate(charPrefabs);

        characterObject.InitTransformAsChild(tileSystem.GetTilemap(eTilemapType.GROUND).transform);

        Vector3 position = characterObject.transform.position;

        characterObject.transform.position   = position;
        characterObject.transform.localScale = new Vector3(1.3f, 1.3f, 1.3f);

        Character character = null;

        switch (scriptName)
        {
        case "Player":
            character = characterObject.AddComponent <Player>();
            character._playerController = characterObject.AddComponent <PlayerController>();
            character.name = "Player";
            break;

        case "Enemy":
            character      = characterObject.AddComponent <Enemy>();
            character.name = "Enemy";
            break;

        default:
            break;
        }
        var spriteRenderers = character.GetComponentsInChildren <SpriteRenderer>(true);

        foreach (var spriteRenderer in spriteRenderers)
        {
            spriteRenderer.sortingOrder = tileSystem.GetTileCell(tileX, tileY).GetGroundLayerOrder();
        }
        tileSystem.GetTileCell(tileX, tileY).SetObject(character, eTileLayer.GROUND);

        Debug.Log("SPAWN::Create " + character.name);
        return(character);
    }