private void UpdateVisual(int index, ControllerState state) { if (m_ControllerVisuals[index] == null && state.controllerType != ControllerType.CONTROLLER_TYPE_UNKNOWN) { ControllerVisualType visualType = ControllerVisualFactory.GetDefaultVisualType(state.controllerType); CreateControllerVisual(index, visualType); } if (m_ControllerVisuals[index] != null) { m_ControllerVisuals[index].SetActive(NRInput.ControllerVisualActive); m_ControllerVisuals[index].UpdateVisual(state); } }
private void CreateControllerVisual(int index, ControllerVisualType visualType) { GameObject visualGo = ControllerVisualFactory.CreateControllerVisualObject(visualType); if (visualGo == null) { return; } m_ControllerVisuals[index] = visualGo.GetComponent <IControllerVisual>(); if (m_ControllerVisuals[index] != null) { ControllerAnchorEnum ancherEnum = (index == 0 ? ControllerAnchorEnum.RightModelAnchor : ControllerAnchorEnum.LeftModelAnchor); visualGo.transform.parent = NRInput.AnchorsHelper.GetAnchor(ancherEnum); visualGo.transform.localPosition = Vector3.zero; visualGo.transform.localRotation = Quaternion.identity; visualGo.transform.localScale = Vector3.one; } else { Debug.LogError("The ControllerVisual prefab:" + visualGo.name + " does not contain IControllerVisual interface"); Destroy(visualGo); } }