private void Update() { PlayerControllerBase controller = PlayerControllerBase.GetActiveInstance(); PlayerData data = PlayerData.Instance; if (data == null) { return; } playerName.text = data.name; hpValue = Mathf.Lerp(hpValue, controller.life, Time.deltaTime * updateSpeed); xpValue = Mathf.Lerp(xpValue, (float)data.Experience / data.ExperienceToNextLevel, Time.deltaTime * updateSpeed); playerHP.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, playerHPBackground.rect.width * hpValue); playerHPVal.text = (int)(controller.life * controller.maxLife) + " / " + (int)controller.maxLife; playerXP.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, playerXPBackground.rect.width * xpValue); playerXPVal.text = data.Experience + " / " + data.ExperienceToNextLevel; playerLevel.text = "Level " + data.level; playerClass.text = i18n.Translate("player.class." + data.playerClass); }
private void Start() { PlayerControllerBase controller = PlayerControllerBase.GetActiveInstance(); SpellBase[] spells = controller.Spells; renderers = new Image[spells.Length]; cooldownOverlays = new RectTransform[spells.Length]; cooldowns = new Text[spells.Length]; for (int i = 0; i < spells.Length; i++) { SpellBase spell = spells[i]; GameObject go = new GameObject("spell"); go.transform.SetParent(transform, false); renderers[i] = go.AddComponent <Image>(); renderers[i].sprite = Resources.Load <Sprite>("Icons/" + spell.icon); RectTransform rect = go.GetComponent <RectTransform>(); rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, BOX_SIZE.x); rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, BOX_SIZE.y); GameObject spellOverlay = new GameObject("overlay"); cooldownOverlays[i] = spellOverlay.AddComponent <RectTransform>(); cooldownOverlays[i].SetParent(rect, false); cooldownOverlays[i].SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0F, 0F); spellOverlay.AddComponent <Image>().color = new Color(UNUSABLE.r, UNUSABLE.g, UNUSABLE.b, .5F); GameObject numberBackground = new GameObject("numberBackground"); numberBackground.transform.SetParent(rect, false); Image numberBg = numberBackground.AddComponent <Image>(); numberBg.color = new Color(0F, 0F, 0F, .75F); RectTransform bgRect = numberBackground.GetComponent <RectTransform>(); bgRect.anchorMin = new Vector2(0F, 0F); bgRect.anchorMax = new Vector2(0F, 0F); bgRect.pivot = new Vector2(0F, 0F); bgRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 30F); bgRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 30F); GameObject hotbarNumber = new GameObject("hotbarNumber"); Text numberText = hotbarNumber.AddComponent <Text>(); numberText.font = Resources.GetBuiltinResource <Font>("Arial.ttf"); numberText.fontSize = 36; numberText.alignment = TextAnchor.MiddleCenter; numberText.transform.SetParent(numberBackground.transform, false); numberText.text = PlayerControllerBase.keyLabels[i]; GameObject cooldownNumber = new GameObject("cooldownNumber"); cooldowns[i] = cooldownNumber.AddComponent <Text>(); cooldowns[i].font = Resources.GetBuiltinResource <Font>("Arial.ttf"); cooldowns[i].fontSize = 36; cooldowns[i].alignment = TextAnchor.MiddleCenter; cooldowns[i].transform.SetParent(rect, false); cooldowns[i].color = COOLDOWN_VALUE; } }
public override void Cast(PlayerControllerBase controller) { controller.Heal(controller.playerData.GetMaxLife() * healingPotential); }
public void Shoot(Vector3 direction, PlayerControllerBase owner) { this.direction = direction; this.shooting = true; this.owner = owner; }
// Use this for initialization void Start() { player = GetComponent(typeof(PlayerControllerBase)) as PlayerControllerBase; }
public abstract void Cast(PlayerControllerBase controller);
public virtual bool CompareLevelRequirement(PlayerControllerBase controller) { return(controller.playerData.level >= levelRequirement); }
private void Update() { // Context switch was requested // To ensure we do not switch controllers in the middle of the frame we only update the // controller at the beginning of the frame. Controller change requests made in the middle // of the frame will only affect the m_NewController. if (m_NewController != null) { m_controller = m_NewController; m_NewController = null; } RotateView(); RaycastHit HitInfo; int NotPlayerMask = ~(1 << LayerMask.NameToLayer("PlayerCharacter")); if (Physics.Raycast(m_Camera.transform.position, m_Camera.transform.forward, out HitInfo, 10.0f, NotPlayerMask)) { GuiOutput.DisplayDebugDistanceMessage("" + ((RaycastHit)HitInfo).distance); m_WasHovering = true; GameObject NewTarget = HitInfo.collider.gameObject; if (NewTarget == m_PreviousTarget) { m_HoverTime += Time.deltaTime; m_controller.OnHover(m_HoverTime); } else { m_HoverTime = 0.0f; m_controller.OnTargetChange(HitInfo); } m_PreviousTarget = NewTarget; } else if (m_WasHovering) { m_WasHovering = false; m_PreviousTarget = null; m_controller.OnTargetChange(null); } if (!m_MouseDown) { m_MouseDown = Input.GetMouseButtonDown(0); m_HoldTime = 0.0f; } else if (Input.GetMouseButtonUp(0)) { m_MouseDown = false; if (m_HoldTime < m_ClickSensitivity) { m_controller.OnClick(); } else { m_controller.OnRelease(m_HoldTime); } } else { m_HoldTime += Time.deltaTime; if (m_HoldTime > m_ClickSensitivity) { m_controller.OnHold(m_HoldTime); } } }
public void ChangeContext(PlayerControllerBase newController) { Debug.Log(String.Format("Switched to {0}", newController.GetType())); m_NewController = newController; }
private void InitPlayerController() { playerController = new PlayerController(playerView, playerData, lazerFactory, levelView); }
// 컨트롤러와 연결되었을 경우 호출되는 메서드입니다. public virtual void OnControllerConnected(PlayerControllerBase connectedController) { _PlayerController = connectedController; }