Skip to content

Instantly share code, notes, and snippets.

View zhenlinyang's full-sized avatar

Zhenlin Yang zhenlinyang

View GitHub Profile
public void LoadConfig()
{
foreach (Type type in ConfigList.AllConfigTypeList)
{
string path = "../../Resources/Config/" + type.Name.Replace("Config", ".bytes");
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None))
{
byte[] binary = new byte[fs.Length];
fs.Read(binary, 0, Convert.ToInt32(fs.Length));
m_configDic.Add(type, BinaryParse(binary, type));
@zhenlinyang
zhenlinyang / ActivatorSample.cs
Last active July 1, 2016 02:40
Activator Sample
private ConfigDataBase CreateConfigData(Type configType)
{
var configData = Activator.CreateInstance(configType) as ConfigDataBase;
return configData;
}
@zhenlinyang
zhenlinyang / LitJsonSample.cs
Created July 4, 2016 09:36
LitJson Sample for Unity3D
public static Param GetParam(string jsonPath)
{
UnityEngine.Object asset = Resources.Load(jsonPath);
TextAsset textAsset = (TextAsset)asset;
string json = textAsset.text;
JsonReader jsonReader = new JsonReader(json);
JsonData jsonData = JsonMapper.ToObject(jsonReader);
Param param = new Param();
@zhenlinyang
zhenlinyang / ReferenceToValue.cs
Created July 5, 2016 11:38
Reference to Value
public class Name
{
#region Field
public readonly string FirstName;
public readonly string LastName;
#endregion
public Name(string firstName, string lastName)
@zhenlinyang
zhenlinyang / CustomYieldInstructionSample.cs
Created July 6, 2016 09:05
Unity5.3 CustomYieldInstruction Sample
public class CustomYieldInstructionSample : MonoBehaviour
{
IEnumerator TheCoroutine()
{
TheLock theLock = new TheLock();
yield return new WaitTheFinish(theLock.GetLockState);
}
}
public class WaitTheFinish : CustomYieldInstruction
@zhenlinyang
zhenlinyang / MakeThreadSafeCallsToWindowsFormsControls.cs
Created July 7, 2016 02:21
Make Thread-Safe Calls to Windows Forms Controls
public delegate void LogCallback(string str, Color color);
private void LogHandler(string str, Color color)
{
if (LogRichTextBox.InvokeRequired)
{
LogCallback logCallback = LogCallbackFunction;
Invoke(logCallback, new object[] {str, color});
}
@zhenlinyang
zhenlinyang / UnityEventSample.cs
Created July 26, 2016 02:28
Unity Event Sample
using System;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class UnityEventSample : Graphic, IPointerUpHandler, IPointerDownHandler
{
[Serializable]
public class EventNone : UnityEvent
@zhenlinyang
zhenlinyang / Explicit.cs
Created August 9, 2016 01:35
CSharp Explicit
public static explicit operator UnityEngine.Vector3(NanoFramework.UnityForServer.DataStructure.Vector3 v)
{
return new UnityEngine.Vector3(v.x, v.y, v.z);
}
@zhenlinyang
zhenlinyang / DataMatrixMatchingCheck.cs
Created August 9, 2016 01:44
Data Matrix Matching Check
/// <summary>
/// Data Matrix Matching Check
/// </summary>
/// <param name="u1"></param>
/// <param name="u2"></param>
/// <param name="num">Maxdiff</param>
public static bool Match(ulong u1, ulong u2, byte num)
{
for (u1 ^= u2; 0 != u1 && 0 != num; num--)
{
@zhenlinyang
zhenlinyang / DataMatrixRotating.cs
Created August 9, 2016 01:49
Data Matrix Rotating
/// <summary>
/// Data Matrix Rotating
/// </summary>
/// <param name="number">Original Data</param>
/// <returns>Four directions of the number, the original data in the final.</returns>
public static ulong[] GetRotatedNumbers(ulong number)
{
ulong[] ulongs = new ulong[4];
ulongs[3] = number;
for (int t = 0; t < 3; ++t)