2019년 12월 5일 목요일

unity dateTime 시간차이 구하기

System.TimeSpan gap = (parent_Info.endTime - parent_Info.startTime);
                parent_Info.workTime = new System.DateTime() + gap;

쿼리(조인 + 내부질의)

select
A.Coil_No,
A.Result_THK,
A.Result_WTH,
A.Result_WGT,
C.SLAB_NO
from Coil_Result A
left join Coil_Setting B
ON A.Coil_No = B.Coil_No
left join Production_Schedule_Final C
On B.Slab_No = C.SLAB_NO
Where A.Coil_No IN(select Coil_No from Coil_Setting where Slab_No = 'PP0004')

2019년 12월 3일 화요일

암호화 복호화 c#



암호화 복호화 저장
DataEncryptDecrypt Class
https://gist.github.com/DongguemYoo/2546a2067dc065297765c5b7d55b05cf


using UnityEngine;
using System;
using System.IO;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Serialization;








public class Data
{
    public Inner iNner;
    public Inner ind;   
}

public class Inner
{
    public int A;
    public int B;
}






public class Test : MonoBehaviour {

 // Use this for initialization
 void Start () {
        
        Data testData = new Data();
        Inner inner = new Inner();
        inner.A = 10;
        inner.B = 22;
        testData.iNner = inner;

        //오브젝트 암호화 저장
        //obj_encrypt_Save(testData, Application.dataPath + "/En/En_tst22.txt");

        //암호화 저장된 데이터 오브젝트에 Deserialize!!
        //decrypt_load(testData, Application.dataPath + "/En/En_tst22.txt");
        
        //복호화가 잘 되었는지 파일로 내려서 확인
        //private_Check(testData);
    }


    //오브젝트를 암호화 하여 text로 저장
    public void obj_encrypt_Save(object obj,string filePath)
    {
        string enc = DataEncryptDecrypt.encrystringData(SerializeToXml(obj));
        File.WriteAllText(filePath,enc, Encoding.Default);
    }


    //text를 불러와 복호화 후 오브젝트에 Deserailize
    public void decrypt_load<T>(T obj,string En_filePath)
    {
        string read = File.ReadAllText(En_filePath);

        string de_data = DataEncryptDecrypt.Decrypt(read);
        obj = Serializer.DeserializeObject<T>(de_data);
    }

    //복호화가 잘 되었는지 확인용
    private void private_Check<T>(T obj)
    {
        Stream stream = new FileStream(Application.dataPath + "/복호화확인.xml", FileMode.CreateNew);
        XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
        xmlSerializer.Serialize(stream, obj);
    }
    



    
    public string SerializeToXml(object input)
    {
        XmlSerializer ser = new XmlSerializer(input.GetType());
        string result = string.Empty;

        using (MemoryStream memStm = new MemoryStream())
        {
            ser.Serialize(memStm, input);

            memStm.Position = 0;
            result = new StreamReader(memStm).ReadToEnd();
        }

        return result;
    }
}

public static class Serializer
{
    public static string SerializeObject(object obj)
    {
        MemoryStream memoryStream = new MemoryStream();
        XmlSerializer xs = new XmlSerializer(obj.GetType());
        XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
        xs.Serialize(xmlTextWriter, obj);
        memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
        return UTF8ByteArrayToString(memoryStream.ToArray());
    }

    public static T DeserializeObject<T>(string objString)
    {
        object obj = null;
        XmlSerializer xs = new XmlSerializer(typeof(T));
        using (MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(objString)))
        {
            XmlTextReader xtr = new XmlTextReader(memoryStream);
            obj = xs.Deserialize(xtr);
        }
        return (T)obj;
    }

    private static string UTF8ByteArrayToString(byte[] characters)
    {
        UTF8Encoding encoding = new UTF8Encoding();
        return encoding.GetString(characters);
    }

    private static byte[] StringToUTF8ByteArray(string xmlString)
    {
        UTF8Encoding encoding = new UTF8Encoding();
        return encoding.GetBytes(xmlString);
    }

}

2019년 11월 26일 화요일

unity 회전

transform.rotation = Quaternion.Euler (new Vector3 (10, 0, 0));

transform 컴포넌트의 rotation 값을 (10, 0, 0) 으로 바꾼다.


transform.Rotate (10, 0, 0);

rotation의 x값을 10만큼 더 회전시킨다.

2019년 11월 25일 월요일

WebSocket 연결시 ERROR 나면 보셈

websocket은 dotnet 4.5이상으로 playersetting에서 변경해줘야함 ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
api(.NET 3.이상)은 3.5이상으로 변경해야한다

2019년 11월 23일 토요일

unity 충돌 방향 감지

 Vector3 direction = transform.position - other.gameObject.transform.position;

        //direction = direction * 1000;
        //normalized 를 함으로 벡터의 방향은 그대로 두고 크기만 1.0로 맞춰 주는 것
        direction = direction.normalized * 3;

        Debug.Log("direction :" + direction);
        Target.position = new Vector3(direction.x,0, direction.z);

        MoveHandler(this, new EventMove() { TargetPos = direction });

2019년 11월 21일 목요일

C# Dictionary의 value 값으로 key 찾기

1
var _key = Dic.FirstOrDefault(x=>x.Value == "Mon").key;
cs
단순히 linq를 이용해서 찾기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...