Implemented resource manager which can load textures and levels.

Implemented script to generate Resources.g.h file linking assets to code.
Added assets from old project.
This commit is contained in:
2016-11-12 14:17:00 +02:00
parent 294fd6e2ac
commit 914ae0de0d
74 changed files with 14937 additions and 304 deletions

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: ee8b9a114dfdec440816f9c759dee732
folderAsset: yes
timeCreated: 1477769888
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,36 @@
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
public Camera CameraObject;
public float MovementDelta;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
// Center camera on player
var playerCoords = gameObject.transform.position;
CameraObject.transform.position = new Vector3(playerCoords.x, playerCoords.y, CameraObject.transform.position.z);
// Handle movement keys
float deltaX = 0, deltaY = 0;
if (Input.GetKey(KeyCode.DownArrow))
deltaY -= MovementDelta * Time.deltaTime;
if (Input.GetKey(KeyCode.UpArrow))
deltaY += MovementDelta * Time.deltaTime;
if (Input.GetKey(KeyCode.LeftArrow))
deltaX -= MovementDelta * Time.deltaTime;
if (Input.GetKey(KeyCode.RightArrow))
deltaX += MovementDelta * Time.deltaTime;
gameObject.transform.Translate(deltaX, deltaY, 0);
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1fbc71aa16ba11f4ca78672f45b0fa09
timeCreated: 1477769903
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,56 @@
using UnityEngine;
using System.Collections;
using System.Xml.Linq;
using Model;
using Storage;
using System.IO;
public class SceneLoaderController : MonoBehaviour {
public TextAsset BackgroundLayer;
public Sprite[] BackgroundTileSet;
private Map map;
private void LoadScene(Map map)
{
// Spawn objects
foreach (var layer in map.Layers)
{
GameObject layerObject = new GameObject(layer.Name);
for (int y = 0; y < layer.Height; y++)
for (int x = 0; x < layer.Width; x++)
{
// Obtain tile
int tileId = layer.Cells[y, x];
if (tileId >= 0)
{
// Spawn tile
GameObject tileObject = new GameObject(string.Format("{0}{1}{2}", layer.Name, x, y));
tileObject.transform.parent = layerObject.transform;
tileObject.transform.localPosition = new Vector3(x, -y, 0);
var spriteRenderer = tileObject.AddComponent<SpriteRenderer>();
spriteRenderer.sprite = BackgroundTileSet[tileId];
spriteRenderer.sortingLayerName = layer.Name;
}
}
}
}
// Use this for initialization
void Start ()
{
// Load map
map = new Map();
MapLoader.LoadLayer(map, "Background", BackgroundLayer.text);
LoadScene(map);
}
// Update is called once per frame
void Update () {
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 598014e699a25e841916d55cd9e865ba
timeCreated: 1477757088
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: c9f1eaad7a6db0740bbf4a937f148ac2
folderAsset: yes
timeCreated: 1477764951
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace Model
{
public class Layer
{
public string Name;
public int Width;
public int Height;
public int[,] Cells;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ece066914ebb15a4eb9364302cc4b0b5
timeCreated: 1477767546
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace Model
{
public class Map
{
/// <summary>
/// The width of the map in tiles
/// </summary>
public int Width = 0;
/// <summary>
/// The height of the map in tiles
/// </summary>
public int Height = 0;
/// <summary>
/// The width of a tile in pixels
/// </summary>
public int TileWidth = 0;
/// <summary>
/// The height of a tile in pixels
/// </summary>
public int TileHeight = 0;
/// <summary>
/// Loaded tile sets
/// </summary>
public Dictionary<int, Tile> Tiles = new Dictionary<int, Tile>();
/// <summary>
/// Layers
/// </summary>
public List<Layer> Layers = new List<Layer>();
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 52238496c720c374994d050a357a309c
timeCreated: 1477764951
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace Model
{
public class Tile
{
public string ImageSource;
public int Width;
public int Height;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c0061c920a4f77a46ac2e6cd1174374d
timeCreated: 1477767546
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 14b09c03a73215240aea60a8ee65c7a2
folderAsset: yes
timeCreated: 1477767546
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Model;
using UnityEngine;
namespace Storage
{
public static class MapLoader
{
public static void LoadLayer(Map map, string layerName, string dataCsv)
{
// Process layer attributes
Layer layer = new Layer();
layer.Name = layerName;
// Split into substrings
string[] dataRows = dataCsv.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
for (int y = 0; y < dataRows.Length; y++)
{
string[] dataRowItems = dataRows[y].Trim().Split(',');
// Allocate cells
if (y == 0)
{
layer.Cells = new int[dataRows.Length, dataRowItems.Length];
layer.Width = dataRowItems.Length;
layer.Height = dataRows.Length;
}
// Set cells
for (int x = 0; x < layer.Width; x++)
layer.Cells[y, x] = Int32.Parse(dataRowItems[x]);
}
// Add layer
map.Layers.Add(layer);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 6c11a44a1418f7c4bbfbd9f82893e900
timeCreated: 1477767546
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: