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;
                    }
                }
            }
        }
    }
Beispiel #3
0
 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);
         }
     }
 }