Problem with TD script (from java to c#)

Hi guys. I’m making Tower Defence game and i stuck in scrip which i translated from java to c#. I have 3 errors and i can’t solve them

  1. Assets/Skrypty/InGAmeGUI.cs(64,53): error CS0266: Cannot implicitly convert type UnityEngine.Object' to UnityEngine.GameObject’. An explicit conversion exists (are you missing a cast?)

  2. Assets/Skrypty/InGAmeGUI.cs(66,64): error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.localEulerAngles’. Consider storing the value in a temporary variable

  3. Assets/Skrypty/InGAmeGUI.cs(95,25): error CS0103: The name `buildPanelTweener’ does not exist in the current context

    using UnityEngine;
    using System.Collections;

    public class InGAmeGUI : MonoBehaviour {

    //NGU items
    
    public bool buildPanelOpen = false;
    public TweenPosition BuildPanelTweener; 
    public TweenRotation BuildPanelArrowTweener;
    
    //Placement Plane Items
    public Transform placementPlanesRoot; // attach the placement plane root
    public Material hoverMat; // attach the hover material to this slot
    public LayerMask placementLayerMask; // calls up the layer mask selection
    private Material originalMat;
    private GameObject lastHitObj;
    
    //Build Selection Items
    public Color onColor;
    public Color offColor;
    public GameObject[] allStructures;
    public UISlicedSprite[] buildBtnGraphics;
    
    private int structureIndex = 0;
    
    void Start ()
    {
    	//reset the structure index, refresh the GUI
    	structureIndex = 0;
    	UpdateGUI();
    }
    
    void Update ()
    {
    	if ( buildPanelOpen )
    	{
    		 var ray = Camera.main.ScreenPointToRay ( Input.mousePosition );
    		RaycastHit hit;
    		if ( Physics.Raycast ( ray,out hit, 1000, placementLayerMask ) )
    		{
    			if ( lastHitObj )
    			{
    				lastHitObj.renderer.material = originalMat;
    			}
    			lastHitObj = hit.collider.gameObject;
    			originalMat = lastHitObj.renderer.material;
    			lastHitObj.renderer.material = hoverMat; // sets the planes material to the highlighted material
    		}
    		else // if the raycast didn’t hit anything
    		{
    			if ( lastHitObj ) // if we had previously hit something
    			{
    				lastHitObj.renderer.material = originalMat; // visually de select that object
    				lastHitObj = null; // nullify the plane selection
    			}
    		}
    		// drops a turrent on click
    		if ( Input.GetMouseButtonDown(0) && lastHitObj ) //left mouse button was clicked and there is a last hitObject // if left mouse button (0) is clicked and we have something selected
    		{
    			if(lastHitObj.tag =="PlacementPlane_Open")
    			{
    				// drop the chosen structure exactly at the tile’s position and rotation of Zero. See how the “index” comes into play here?
    				GameObject  newStructure = Instantiate( allStructures[structureIndex], lastHitObj.transform.position, Quaternion.identity );
    				// set the new structure to have a random rotation. just for looks
    				newStructure.transform.localEulerAngles.y = (Random.Range(0, 360));		//newStructure.transform.localEulerAngles.y = ( Random.Range ( 0, 360 ) );
    				// set this tile’s tag to “Taken” so we can’t double place a structure
    				lastHitObj.tag = "PlacementPlane_Taken";		
    			}
    		}
    	}
    }
    
    void UpdateGUI () {
    
    	//Go through all structure buttons (buttons in the build panel). and set them to “off”
    	foreach(UISlicedSprite theBtnGraphic in buildBtnGraphics )//in buildBtnGraphics
    	{
    		theBtnGraphic.color = offColor;
    	}
    	//set the selected build button to “on”
    	buildBtnGraphics[structureIndex].color = onColor;
    }
    
    // this happens whenever the build arrow is clicked
    void ToggleBuildPanel ()
    {
    	if ( buildPanelOpen ) {
    		// hide all build tiles
    		foreach(Transform thePlane in placementPlanesRoot) 
    		{
    			thePlane.gameObject.renderer.enabled =false;
    		}
    		// plays the build panel tweener script backward ( false )
    		buildPanelTweener.Play ( false );
    		// sets the boolean to false ( closed )
    		buildPanelOpen = false; 
    	}
    	
    
    	else // the build panel was closed, so instead do this…
    	{
    		BuildPanelTweener.Play(true);
    		BuildPanelArrowTweener.Play(true);
    		foreach ( Transform thePlane in placementPlanesRoot )
    		{
    			thePlane.gameObject.renderer.enabled = true;
    		}
    
    	}
    }
    // Called whenever a structure choice is clicked ( the button in the build panel )
    void SetBuildChoice ( GameObject btnObj )
    {
    	string btnName = btnObj.name;
    	if ( btnName == "Btn_Farmer")
    	{
    		structureIndex = 0;
    	}
    	else if ( btnName == "Btn_Cow" )
    	{
    		structureIndex = 1;
    	}
    	else if ( btnName == "Btn_Alien")
    	{
    		structureIndex = 2;
    	}
    	UpdateGUI ();
    }
    

    }

Here you create a Object (not object) and assign it to a GameObject, you can use a cast like @tomekkie2 said, or use GameObject.Instantiate.
Line64:

GameObject  newStructure = GameObject.Instantiate( allStructures[structureIndex], lastHitObj.transform.position, Quaternion.identity );

This is more of a C# design error, you can’t assign one part of a vector, you need to change the whole thing(its weird I know). you can do this by creating a new vector with the same values except the ones you changed then assign it.
Line66:

  newStructure.transform.localEulerAngles = new Vector3(
  newStructure.transform.localEulerAngles.x, 
  (Random.Range(0, 360)),
  newStructure.transform.localEulerAngles.z);

As for Line 95, you need to set the execution order for build panel tweener.
based on that error, is probably still in Unityscript(“Javascript”). are you planning to convert that to C#?