using UnityEngine; public class GameStick : MonoBehaviour { GameObject m_arrowObj = null; GameObject m_dotObj = null; float m_arrowSize = 289f - 118f - 59f; Vector3 m_dotDefaultPos = new Vector3(); //----------------------------------------------------------------------------------------- void Start () { Init(); } //----------------------------------------------------------------------------------------- void Init() { m_arrowObj = transform.Find("arrow").gameObject; m_dotObj = m_arrowObj.transform.Find("arrow").gameObject; m_dotDefaultPos = m_dotObj.transform.localPosition; } //----------------------------------------------------------------------------------------- public void SetDefault(bool isDefault) { //Vector3 scale = m_arrowObj.transform.localScale; if (isDefault) { SetArrowAngle(0); m_dotObj.transform.localPosition = m_dotDefaultPos; } //m_arrowObj.transform.localScale = scale; } //----------------------------------------------------------------------------------------- public float GetArrowYScale() { Vector3 arrowScale = m_arrowObj.transform.localScale; return arrowScale.y; } //----------------------------------------------------------------------------------------- public void SetArrowScale(float delta) { float neededYScale = delta / m_arrowSize; if (neededYScale > 1f) neededYScale = 1f; float dotShift = m_arrowSize * neededYScale; Vector3 dotPos = m_dotObj.transform.localPosition; dotPos.y = dotShift; m_dotObj.transform.localPosition = dotPos; //Vector3 arrowScale = m_arrowObj.transform.localScale; //arrowScale.y = neededYScale; //m_arrowObj.transform.localScale = arrowScale; } //----------------------------------------------------------------------------------------- public void UpdateArrow(Vector3 dir) { float angle = Vector3.Angle(dir, new Vector3(0, 1, 0)); if (dir.x > 0) angle = -angle; SetArrowAngle(angle); } //----------------------------------------------------------------------------------------- void SetArrowAngle(float angle) { Vector3 arrowAngle = m_arrowObj.transform.eulerAngles; arrowAngle.z = angle; m_arrowObj.transform.eulerAngles = arrowAngle; } }