/// <summary> /// Spawns the brain for one subject- this may be "fsaverage_joel", the average brain. This will try to use assetBundles and call ObjSpawn if it can't. /// </summary> /// <returns>The spawn.</returns> /// <param name="subject">Subject.</param> /// <param name="average_brain">If set to <c>true</c> average brain.</param> public override IEnumerator Spawn(string subject, bool average_brain = false) { CoroutineWithData subjectListRequest = new CoroutineWithData(this, RhinoRequestor.AssetBundleRequest(subject)); yield return(subjectListRequest.coroutine); Debug.Log(subjectListRequest.result); if (subjectListRequest.result == null) { loadingText.text = "AssetBundle not found. Performing alternative (slower) load. Please wait."; ObjSpawn(subject, average_brain); yield break; } AssetBundle bundle = (AssetBundle)subjectListRequest.result; GameObject brainPrefab = bundle.LoadAsset <GameObject>(subject); GameObject brain = Instantiate(brainPrefab); brain.transform.parent = gameObject.transform; dk = brain.transform.GetChild(1).gameObject; hcp = brain.transform.GetChild(0).gameObject; dkLeftParent = dk.transform.GetChild(0).gameObject; dkRightParent = dk.transform.GetChild(1).gameObject; hcpLeftParent = hcp.transform.GetChild(0).gameObject; hcpRightParent = hcp.transform.GetChild(1).gameObject; currentBundle = bundle; //due to weirdness, flip everything //gameObject.transform.localScale = new Vector3 (-gameObject.transform.localScale.x, gameObject.transform.localScale.y, gameObject.transform.localScale.z); hcp.SetActive(false); }