Unity physics

If you want to use physics engine for your object (gravity, forces), make sure to add Rigidbody compoment. To interact with other physics objects attach collider object.
Rigitbody properties:
Mass – helps to figure out winner of collision
Drag – how quickly it will come to rest.
Angular Drag – rotation friction (opposite torque)
Use Gravity – impacted by general gravity or not. (Edit->ProjectSettings->Physics)
Is Kinematic – will rigidbody react to physics. Physics objects that affects others, but are not affected themselves. Translate updates collision data when object is moved. Static objects cause all objects to be reevaluated.
Interpolate – solve jittering if it was created by moving rigidbody. Interpolate smoothes transform based on previous frame. Extrapolate – smoothes based on predicted next frame.
Collision Detection – type of detection. Continuous for fast moving objects that are interacting with static geometry. Continuous Dynamic – fast moving and interacting with other dynamic objects.
Constraints – possible to lock axes for position or rotation.
https://unity3d.com/learn/tutorials/topics/physics/rigidbodies

AddForce(Vector3 direction & magnitude, [ForceMode mode]) – move object by adding forces;
mode:
Acceleration – continuous changes not affected by mass,
Force(default) – for continuous changes affected by mass,
Impulse – instant change affected by mass,
VelocityChange – instant change not affected by mass.
Forces ar dampened by rigidbody drag property.

AddTorque(Vector3 torque, [ForceMode mode]) is similiar for rotations

p.s transform.forward – shortcut to z axis of localspace of object.
Physics materials describes surface of object for friction and how object material affects it – like tenis ball vs. bowling ball

Generic serialization/deserialization

        public static void Serialize<T>(String file, T data)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            using (StringWriter writer = new StringWriter())
            {
                serializer.Serialize(writer, data);
                File.WriteAllText(file, writer.ToString());
            }
        }

        public static T Deserialize<T>(String file)
        {
            String xml = File.ReadAllText(file);
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            using (StringReader reader = new StringReader(xml))
            {
                return (T)(serializer.Deserialize(reader));
            }
        }

Blender models in unity shows as documents

For some weird reason, after opening unity project, suddenly blender models were shown as documents not models. Existing scene objects reports to be missing. Solutions:
1) Try reseting model in unity (this helped for me)

2) Reimport the resources (right click on asset > import all).
3) Still nothing? reinstall blender with admin rights, try step 1 again.