bon dabord voilà les scripts :
grid Manager :
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class gridManager : MonoBehaviour {
public bool isBuilding = false;
void Update () {
if(isBuilding == true)
{
gameObject.renderer.enabled = true;
}
else
gameObject.renderer.enabled = false;
if(Input.GetKeyDown(KeyCode.B) && isBuilding == false)
{
isBuilding = true;
}
else if(Input.GetKeyDown(KeyCode.B) && isBuilding == true)
{
isBuilding = false;
}
}
}
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class buildingPlacement : MonoBehaviour {
public GameObject placingCase;
gridManager grid;
GameObject oldCase = null;
GameObject currentCase = null;
public GameObject building;
public Transform buildingInstance;
public LayerMask layer = -1;
void Start()
{
grid = GetComponent<gridManager>();
for(int x = 0; x <= 100; x += 4)
{
for(int z = 0; z <= 100; z += 4)
{
Instantiate(placingCase, new Vector3(x, 0.5f, z), Quaternion.Euler(90, 0, 0));
}
}
}
void Update()
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, out hit, Mathf.Infinity, layer))
{
if(oldCase != null)
oldCase.renderer.material.color = Color.green;
currentCase = hit.transform.gameObject;
currentCase.renderer.material.color = Color.red;
oldCase = currentCase;
}
if(Input.GetKeyDown(KeyCode.B))
{
buildingInstance = ((GameObject)Instantiate(buildingInstance)).transform;
}
if(grid.isBuilding == true)
{
buildingInstance.position = currentCase.transform.position;
}
else if(grid.isBuilding == false && buildingInstance != null)
Destroy (buildingInstance);
}
}
et voilà mes 2 erreurs :
qui correspond a cette ligne :NullReferenceException: Object reference not set to an instance of an object
buildingPlacement.Update () (at Assets/scripts/buildingPlacement.cs:53)
Code : Tout sélectionner
if(grid.isBuilding == true)
{
buildingInstance.position = currentCase.transform.position;
}
qui correspond a cette ligne :InvalidCastException: Cannot cast from source type to destination type.
buildingPlacement.Update () (at Assets/scripts/buildingPlacement.cs:50)
Code : Tout sélectionner
buildingInstance = ((GameObject)Instantiate(buildingInstance)).transform;
Ensuite pour la deuxieme erreur je ne comprend pas, j'ai meme vérifier dans un tuto, et le gars mettait exactement la meme ligne pour instancier son objet...
https://www.youtube.com/watch?v=OuqThz4Zc9c (a la minute 12.37)
voilà, pas grand chose d'autre a rajouter je croit ^^, si besoin est demandez moi.
Merci d'avance