// Enter public void EnterInteriorDimension() { if (Character.InInteriorDimension) { return; } Character.InInteriorDimension = true; // Create interior dimension colDimScript.interiorDimTransform = Instantiate(colDimScript.interiorDimGameObject, Vector3.zero, colDimScript.transform.rotation).transform; colDimScript.interiorDimTransform.GetComponent <FollowRotation>().obj = colDimScript.transform; // <- follow rotation pitäis saaha toimimaan ilman että ukon liikkuminen jumittaa colDimScript.interiorDimTransform.rotation = colDimScript.transform.rotation; // Real dimension character setup realDimensionCharacter = new GameObject("CharacterRealDimension"); realDimensionCharacter.transform.localScale = transform.localScale; realDimensionCharacter.transform.position = transform.position; realDimensionCharacter.transform.rotation = transform.rotation; realDimensionCharacter.AddComponent <FollowRotation>().obj = transform; realDimensionCharacter.AddComponent <InteriorDimensionExitMonitoring>(); CapsuleCollider capCol = realDimensionCharacter.AddComponent <CapsuleCollider>(); Other.CopyComponent(transform.GetComponent <CapsuleCollider>(), capCol); capCol.isTrigger = true; // follow relative position FollowPositionRelativeToObject fprto = realDimensionCharacter.AddComponent <FollowPositionRelativeToObject>(); fprto.sourceParentObject = colDimScript.interiorDimTransform; fprto.destinationParentObject = colDimScript.transform; fprto.sourceTransform = transform; // cameras Vector3 locPos = camerasT.localPosition; Transform realDimCams = new GameObject("Cameras").transform; realDimCams.parent = realDimensionCharacter.transform; realDimCams.localPosition = locPos; realDimCams.rotation = camerasT.rotation; realDimCams.gameObject.AddComponent <FollowRotation>().obj = camerasT; realDimCams.gameObject.AddComponent <FollowLocalPosition>().obj = camerasT; camerasT.Find("Camera").parent = realDimCams; camerasT.Find("FarCamera").parent = realDimCams; // pippeli locPos = Character.Pippeli.transform.localPosition; Character.Pippeli.transform.parent = realDimensionCharacter.transform; Character.Pippeli.transform.localPosition = locPos; // Set character position inside collision dimension transform.position = transform.position - colDimScript.transform.position + colDimScript.posDifference; movementScr.oldPos = transform.position; gameObject.layer = 16; // layer to "CollisionDimension" layer // gravity body script gravityBodyScr.transform = realDimensionCharacter.transform; // background star particles to follow real dimension character //bgstarsFollowObjScr.obj = realDimensionCharacter.transform; }