//Check refernces and set initial values void Start() { setValues();//reset rigid = GetComponent <Rigidbody>(); //camera = transform.GetChild(0).gameObject.GetComponent<Camera>();//camera must be very first child camera = GetComponentInChildren <Camera>(); animator = GetComponent <Animator>(); animator.enabled = true; interactor = GetComponent <Interactor>(); switcher = GetComponent <DSwitcher>(); if (playerData == null) { Debug.LogWarning("assign playerdata to player in inspetor please"); } else { StartCoroutine(loadPlayerData()); } if (inputData == null) { Debug.LogWarning("assign inputdata to player in inspetor please"); } else { StartCoroutine(loadInputData()); } }
private void Awake() //Initiallize before intial switch { dimension = DSwitcher.register(this); //register to switcher if (dimension == null) { Debug.LogWarning(name + " failed to register to " + dimensionIndex); } else { Debug.Log(name + " registered to dimension " + dimension.index); } Transform[] childTrans = gameObject.GetComponentsInChildren <Transform>();//gat all childern children = new GameObject[childTrans.Length]; for (int i = 0; i < children.Length; i++) { children[i] = childTrans[i].gameObject; } if (render.Length == 0) { render = GetComponentsInChildren <Renderer>(); //get renderes } if (render.Length == 0) { Debug.LogError("There is no valid renderer for " + name); } myLayer = new int[children.Length];//get layers of children for (int i = 0; i < children.Length; i++) { myLayer[i] = children[i].layer; } layer = gameObject.layer; castShadow = new UnityEngine.Rendering.ShadowCastingMode[render.Length];//get show of renders for (int i = 0; i < render.Length; i++) { castShadow[i] = render[i].shadowCastingMode; } for (int i = 0; i < render.Length; i++)//get materials of renders { myMaterial.Add(render[i].materials); Material[] mat = new Material[render[i].materials.Length]; for (int j = 0; j < mat.Length; j++) { mat[j] = dimension.mat; } dimMaterial.Add(mat); } }
public static Dimension register(DSwitchable switchObject) //register a switchabe to me { DSwitcher switcher = GameObject.FindObjectOfType <DSwitcher>(); //maybe use singelton instead? if (switcher != null) { switcher.switchables.Add(switchObject); int i = switchObject.dimensionIndex; if (i >= 0 && i < switcher.dimensions.Length) { return(switcher.dimensions[i]); } else { return(null); } } else { Debug.Log(switchObject.name + " could not find a switcher to register to"); return(null); } }