Skip to content

Instantly share code, notes, and snippets.

View xdegtyarev's full-sized avatar
🧊

Alexander Degtyarev xdegtyarev

🧊
View GitHub Profile
@xdegtyarev
xdegtyarev / sublimeRunner
Created September 27, 2012 14:08
Unity Sublime Runner
//
// main.cpp
// SublimeRunner
//
// Created by Alexander Degtyarev on 9/27/12.
// Copyright (c) 2012 Alexander Degtyarev. All rights reserved.
//
#include <iostream>
#include <sstream>
@xdegtyarev
xdegtyarev / CompleteSharp.sublime-settings
Created November 10, 2012 19:44
CompleteSharp Unity3d config
{
// You probably want to configure this to something of your own.
// ${home}, ${env:<variable>}, ${project_path:} and ${folder:} tokens can be used in the completesharp_assemblies option.
//
// ${home} is replaced with the value of the HOME environment variable.
//
// ${env:<variable>} is replaced with the "variable" environment variable.
//
// ${project_path:} tries to find a file with the given name in all the registered project folders and
// returns the first file found, or the original file name if none is found.
@xdegtyarev
xdegtyarev / Get currency ios code from currency symbol
Created December 4, 2012 11:24
Get Currency Code From Currency Symbol
public string GetCurrencyCodeFromSymbol(string symbol)
{
Debug.Log("Retrieving symbol" + symbol);
RegionInfo regionalInfo;
foreach(CultureInfo o in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
{
regionalInfo = new RegionInfo(o.LCID);
Debug.Log("Regional Symbol" + regionalInfo.CurrencySymbol);
if(regionalInfo.CurrencySymbol == symbol)
{
@xdegtyarev
xdegtyarev / CallJavaCode.cs
Created December 12, 2012 13:39
GettingResolutionStringJNI
using UnityEngine;
using System.Collections;
using System.Runtime.InteropServices;
using System;
public class DisplayManagerJNI : MonoBehaviour {
private IntPtr JavaClass;
private string getResolution;
void Start ()
{
1) private не надо ставить, существует дефолтный модификатор видимости)
2) использу google translate если не уверен как по-английски что-то пишется. или спроси меня. и попробуй http://lingualeo.ru/
3) все типы умеют инициализироваться по умолчанию, не нужно писать Object o = null; Только если ты явно хочешь обнулить значение;
4) если ты не добавляешь какого либо функционала в get'еры/set'еры не испульзуй проперти, оставь поле, и если будет необходимо изменить поведение ебанешь проперти
5) любая конструкция if/else даже если состоит из 1 оператора должна быть написана со скобками if(){}else{} никаких if();else; аналогично для for/foreach
6) правильно название подбирай: UseAbility возвращает bool что вприницпе хуево и непонятно переименуй во что-то что из названия подсказывает что вернет bool например TryUseAbility()
7) (delegate(AbilityBase item) { return item.myType == abilityType; }); в контексте Comparer'oв вместо явных делегатов используй лямбды и анонимные функции читать легче
8) толково растаскивай код,
Testing Mesh Skinning with different shaders today;
Timings:
Diffuse-Specular
Editor: ~1.5ms
IPOD5: ~2.3ms
Diffuse:
Editor: ~0.2ms-1.5ms
IPOD5: ~2ms
Unlit:
Editor: ~0.2ms-1.5ms
@xdegtyarev
xdegtyarev / Fast add child gameObject
Created October 31, 2013 21:31
Tiny Editor script, to create empty game object as a child to currently selected transform.
using UnityEngine;
using UnityEditor;
public class CreateEmptyChild : MonoBehaviour {
[MenuItem("GameObject/Create Empty Child &#n")]
static void EmptyChild(){
GameObject go = new GameObject("Empty");
go.transform.parent = Selection.activeTransform;
go.transform.localPosition = Vector3.zero;
go.transform.localRotation = Quaternion.identity;
@xdegtyarev
xdegtyarev / robotAI
Created August 5, 2014 12:40
FSM Example 1
enum State {
CHARGING,
SEARCH_HUMANS,
KILL_ALL_HUMANS
}
State myState = State.CHARGING;
float charge = 0f;
void Update() {
@xdegtyarev
xdegtyarev / State
Created August 5, 2014 13:47
FSM example: State
public class State {
public virtual void Enter( Robot entity );
public virtual void Execute( Robot entity );
public virtual void Exit( Robot entity );
}
@xdegtyarev
xdegtyarev / fsm
Created August 5, 2014 13:47
FSM example: FSM
public class FSM {
public Robot entity;
public State currentState;
public FSM( Robot entity ) {
this.entity = entity;
}
public void Update() {