private void ShowCrimeSceneStageElements(CrimeScene scene) { if (scene.isSelected) { foreach (CrimeSceneObject obj in scene.crimeSceneElements) { if (obj.objCopy.GetComponent <SkinnedMeshRenderer>() != null) { obj.objCopy.GetComponent <SkinnedMeshRenderer>().enabled = true; } if (obj.objCopy.GetComponent <MeshRenderer>() != null) { obj.objCopy.GetComponent <MeshRenderer>().enabled = true; } } } else { foreach (CrimeSceneObject obj in scene.crimeSceneElements) { if (obj.objCopy.GetComponent <SkinnedMeshRenderer>() != null) { obj.objCopy.GetComponent <SkinnedMeshRenderer>().enabled = false; } if (obj.objCopy.GetComponent <MeshRenderer>() != null) { obj.objCopy.GetComponent <MeshRenderer>().enabled = false; } } } }
private void SetCenterStageObjectAndMaxViewDistance(CrimeScene scene) { // Find max distance between crime scene objects to determine size of stage for purposes of camera use/zooming float maxDistanceFromCenterObject = crimeSceneStageRefDistance; float minDistanceBetweenEvidence = crimeSceneStageRefDistance; int minDistanceObjectIndex = 0; if (scene.crimeSceneElements.Count > 2) { for (int i = 0; i < scene.crimeSceneElements.Count - 1; i++) { for (int j = i + 1; j < scene.crimeSceneElements.Count; i++) { float evidenceDistance = Mathf.Abs(Vector3.Distance(scene.crimeSceneElements[j].obj.position, scene.crimeSceneElements[i].obj.position)); if (evidenceDistance < minDistanceBetweenEvidence) { minDistanceBetweenEvidence = evidenceDistance; minDistanceObjectIndex = i; scene.centerObject = scene.crimeSceneElements[i]; } if (evidenceDistance > maxDistanceFromCenterObject) { scene.maxViewCamDistance = evidenceDistance; } } } } }
public void Check() { if (!isactive) { CrimeScene.Remove(this); } }
// Move the invisible copy crime scene object to the crime scene stage, position it relative to the center private void PositionAllSceneStageObjects(CrimeScene scene) { foreach (CrimeSceneObject obj in scene.crimeSceneElements) { if (obj != scene.centerObject) { Vector3 refPos = obj.obj.position - scene.centerObject.obj.position; obj.objCopy.position = crimeSceneStage.position + refPos; } } }
public void AssignEvidenceToScene(CrimeScene scene) { foreach (CrimeSceneObject obj in evidencePool) { if (obj.sceneName == scene.sceneName) { scene.crimeSceneElements.Add(obj); evidencePool.Remove(obj); } } }