Flying Trees?

Hi, in my survival games, i have trees that i want to chop down for wood. But everytime i spawn, they float of to midspace,

here are the codes:

TREE CONTROLLER:

#pragma strict

var treeHealth : int = 5;

var logs : Transform;
var coconut : Transform;
var tree : GameObject;

var speed : int = 8;

function Start()
{
	tree = this.gameObject;
	gameObject.GetComponent.<Rigidbody>().isKinematic = true;

}

function Update()
{
	if(treeHealth <= 0);
	{
         GetComponent.<Rigidbody>().isKinematic = false;
         GetComponent.<Rigidbody>().AddForce(transform.up * speed);
         DestroyTree();
	}
}

function DestroyTree()
{
	yield WaitForSeconds(7);
	Destroy(tree);
	
	var position : Vector3 = Vector3(Random.Range(-1.0, 1.0), 0, Random.Range(-1.0, 1.0));
	Instantiate(logs, tree.transform.position + Vector3(0,0,0) + position, Quaternion.identity);
	Instantiate(logs, tree.transform.position + Vector3(2,2,0) + position, Quaternion.identity);
	Instantiate(logs, tree.transform.position + Vector3(5,5,0) + position, Quaternion.identity);
	
	Instantiate(coconut, tree.transform.position + Vector3(0,0,0) + position, Quaternion.identity);
	Instantiate(coconut, tree.transform.position + Vector3(2,2,0) + position, Quaternion.identity);
	Instantiate(coconut, tree.transform.position + Vector3(5,5,0) + position, Quaternion.identity);
	
}

RAY CAST CHOP:

#pragma strict

var rayLength : int = 10;

//private var treeScript : TreeController;
private var playerAnim : PlayerControl;

var tree : GameObject;

var stone : GameObject;

function Update()
{
	var hit : RaycastHit;
	var fwd = transform.TransformDirection(Vector3.forward);
	
	if(Physics.Raycast(transform.position, fwd, hit, rayLength))
	{
		if(hit.collider.gameObject.tag == "Tree")
		{
			//treeScript = GameObject.Find(hit.collider.gameObject.name).GetComponent(TreeController);
			tree = (hit.collider.gameObject);
			playerAnim = GameObject.Find("FPSArms_Axe@Idle").GetComponent(PlayerControl);
			
			if(Input.GetButtonDown("Fire1") && playerAnim.canSwing == true)
			{
				//treeScript.treeHealth -= 1;
				tree.GetComponent(TreeController).treeHealth -= 1;
			}
		}
		
		//STONE RAYCAST
		else if(hit.collider.gameObject.tag == "Stone")
		{
			stone = (hit.collider.gameObject);
			playerAnim = GameObject.Find("FPSArms_Axe@Idle").GetComponent(PlayerControl);
			
			if(Input.GetButtonDown("Fire1") && playerAnim.canSwing == true)
			{
				stone.GetComponent(StoneController).stoneHealth -= 1;
			}
		}
	}
}

Here are some images:

56513-screen-shot-2015-10-19-at-92724-pm.png

Look at the trees, they are in the middle of the ocean, they were on the island but they flew off when i spawned.

Is there something wrong here, and just fyi, i follow the survival tutorial.

it might be because you put the trees below ground level , if you do that with something that has rigidbody , it behaves wierdly and it FLIES to who knows where.

try this code (No rigidbody needed!):

//put this script onto the tree when done
//Hope this works!
#pragma strict

var TreeHealth : int = 5; //Tree's health


function Update() {

if(Input.GetMouseButtonDown(0)) { //if the left mouse button is pressed.
   yield WaitForSeconds(TreeHealth); //waits for the number of seconds equal to tree's health
   Destroy(gameObject); //Destroys self
   PlayerInventory.Wood += 5; //Adds 5 to the wood variable in the player's inventory script.
}
}

Hope this helps!