chap8_1.cs -> 

public interface ILogger{

void WriteLog(string log);

}

class ConsoleLogger:ILogger{

public void WriteLog(string log){

Debug.Log(string.Format("{0}, {1}", DateTime.Now.ToLocalTime(), log));

}

}

class FileLogger : ILogger{

StreamWriter writer;

public FileLogger(string path){

writer = File.CreateText(path);

writer.AutoFlush = true;

}

public void WriteLog(string message){

writer.WriteLine("{0}, {1}", DateTime.Now.ToShortTimeString(), message);

}

}


public class CH8_1 : MonoBehaviour {

ILogger[] loggers = new ILogger[2];

// Use this for initialization

void Start () {

ConsoleLogger console = new ConsoleLogger();

FileLogger fileLogger = new FileLogger(Application.dataPath + "/log.txt");

loggers[0] = console;

loggers[1] = fileLogger;

AddLog("GameStart");

AddLog("User 320 Enter");

AddLog("Enter Room 1");

AddLog("Leave Room 1");

}

void AddLog(string message){

for(int i = 0; i < loggers.Length; i++){

loggers[i].WriteLog(message);

}

}

// Update is called once per frame

void Update () {

AddLog(Time.time.ToString());

}

}



ClimateMonitor.cs->


using UnityEngine;

using System.Collections;

using System;

using System.IO;


public class ClimateMonitor : MonoBehaviour {

private ILogger logger;

public int temperature = 0;

public void SetLogger(ILogger logger){

this.logger = logger;

}

// Use this for initialization

void Start () {

SetLogger(new ConsoleLogger());

}

// Update is called once per frame

void Update () {

int t = (int)(Time.time) % 100;

if(t != temperature){

SetTemperature(t);

}

}

void SetTemperature(int t){

temperature = t;

logger.WriteLog(" temperature is " + t);

}

}


'Computer Language > 유니티' 카테고리의 다른 글

배열 선언  (0) 2014.05.16
추상 클래스  (0) 2014.05.13
문자열 거꾸로 찍기  (0) 2014.05.13
확장 클래스  (0) 2014.05.13
얕은 복사와 깊은 복사  (0) 2014.05.12

+ Recent posts