void Update() { ray = CameraManager.Instance.MainCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { CharacterControl control = hit.collider.gameObject.GetComponent <CharacterControl>(); if (control != null) { selectedCharacterType = control.playableCharacterType; } else { selectedCharacterType = PlayableCharacterType.NONE; } } if (Input.GetMouseButtonDown(0)) { if (selectedCharacterType != PlayableCharacterType.NONE) { characterSelect.SelectedCharacterType = selectedCharacterType; characterSelectLight.transform.position = characterHoverLight.transform.position; characterSelectLight.light.enabled = true; } else { characterSelect.SelectedCharacterType = PlayableCharacterType.NONE; characterSelectLight.light.enabled = false; } } }
void Update() { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { CharacterControl control = hit.collider.gameObject.GetComponent <CharacterControl>(); if (control != null) { selectedCharacterType = control.playableCharacterType; } else { selectedCharacterType = PlayableCharacterType.NONE; } } if (Input.GetMouseButtonDown(0)) { if (hit.collider == null) { return; } if (selectedCharacterType != PlayableCharacterType.NONE) { characterSelect.SelectedCharacterType = selectedCharacterType; CharacterControl control = CharacterManager.Instance.GetCharacter(selectedCharacterType); characterSelectLight.transform.position = characterHoverLight.transform.position; characterSelectLight.transform.parent = control.SkinnedMeshAnimator.transform; characterSelectLight.light.enabled = true; selectCircle.SetActive(true); selectCircle.transform.parent = control.SkinnedMeshAnimator.transform; selectCircle.transform.localPosition = new Vector3(0f, 0f, 0f); } else { characterSelect.SelectedCharacterType = PlayableCharacterType.NONE; characterSelectLight.light.enabled = false; selectCircle.SetActive(false); } foreach (CharacterControl c in CharacterManager.Instance.Characters) { if (c.playableCharacterType == selectedCharacterType) { c.SkinnedMeshAnimator.SetBool(TransitionParameter.Select.ToString(), true); } else { c.SkinnedMeshAnimator.SetBool(TransitionParameter.Select.ToString(), false); } } characterSelectCameraAnimator.SetBool(selectedCharacterType.ToString(), true); } }
public CharacterControl GetCharacter(PlayableCharacterType playableCharacterType) { foreach (CharacterControl control in characters) { if (control.playableCharacterType == playableCharacterType) { return(control); } } return(null); }