Example #1
0
    // Update is called once per frame
    void Update()
    {
        IsDown = false;
        if (Input.touches.Length > 0)
        {
            foreach (Touch touch in Input.touches)
            {
                if (Vector2.Distance(touch.position, transform.position) < radius)
                {
                    IsDown = true;
                    break;
                }
            }
        }

        if (HybridInput.IsDebugMode())
        {
            if (Input.GetKey(KeyCode.Mouse0) && Vector2.Distance(Input.mousePosition, transform.position) < radius)
            {
                IsDown = true;
            }
        }

        if (IsDown)
        {
            Image.color = new Color(Image.color.r, Image.color.g, Image.color.b, 0.6f);
        }
        else
        {
            Image.color = new Color(Image.color.r, Image.color.g, Image.color.b, 0.5f);
        }
    }
Example #2
0
 // Update is called once per frame
 void Update()
 {
     transform.Translate(new Vector3(HybridInput.GetAxis("Horizontal"), HybridInput.GetAxis("Vertical"), 0f) * Time.deltaTime);
     if (HybridInput.GetButton("Button"))
     {
         r.color = new Color(0, 0, 0);
     }
     else
     {
         r.color = new Color(1, 1, 1);
     }
 }
Example #3
0
    void Awake()
    {
        if (HorizontalAxisName != null && HorizontalAxisName.Length > 0)
        {
            HorizontalAxis = new TouchAxis(HorizontalAxisName);
            HybridInput.Register(HorizontalAxis);
        }

        if (VerticalAxisName != null && VerticalAxisName.Length > 0)
        {
            VerticalAxis = new TouchAxis(VerticalAxisName);
            HybridInput.Register(VerticalAxis);
        }
    }
Example #4
0
    // Update is called once per frame
    void Update()
    {
        if (Alive)
        {
            InputX = HybridInput.GetAxis("Horizontal");
            InputY = HybridInput.GetAxis("Vertical");

            var input = new Vector3(InputX, 0.0f, InputY);

            if (Hunger > 0.0f)
            {
                Hunger -= Time.deltaTime * HungerDecayRate;
            }
            else
            {
                Die();
            }
            float bodyScale = Hunger / 100f + 0.1f;
            Body.localScale = new Vector3(bodyScale, bodyScale, bodyScale);

            var horizSpeed = input;
            horizSpeed.y = 0.0f;

            if (horizSpeed.magnitude > 0.1f)
            {
                var   horizDiff = Vector3.SignedAngle(Model.forward, horizSpeed, Vector3.up);
                float amount    = Mathf.Sign(horizDiff) * Mathf.Min(Mathf.Abs(horizDiff), TurnSpeed * Time.deltaTime);
                Model.Rotate(Vector3.up, amount);
                anim.SetFloat("LegSpeed", Mathf.Clamp(horizSpeed.magnitude, 0.0f, 1.0f));

                if (footStepTimer < Time.time)
                {
                    PlayRandomSound(footSteps);
                    footStepTimer = Time.time + 0.15f + Random.Range(0.0f, 0.1f);
                }
            }
            else
            {
                anim.SetFloat("LegSpeed", 0.0f);
            }
        }
    }
Example #5
0
    // Update is called once per frame
    void Update()
    {
        if (FingerId == ID_NONE)
        {
            if (HybridInput.IsDebugMode() &&
                (Input.GetKeyDown(KeyCode.Mouse0) &&
                 Vector2.Distance(Input.mousePosition, transform.position) < Radius))
            {
                FingerId = ID_MOUSE;
            }
            foreach (Touch touch in Input.touches)
            {
                if (Vector2.Distance(touch.position, transform.position) < Radius)
                {
                    FingerId = touch.fingerId;
                }
            }
        }

        Vector3 touchPosition    = Vector3.zero;
        bool    foundActiveTouch = false;

        if (FingerId == ID_MOUSE)
        {
            if (Input.GetKey(KeyCode.Mouse0))
            {
                touchPosition = Input.mousePosition;
            }
            else
            {
                FingerId = ID_NONE;
            }
        }
        else if (FingerId != ID_NONE)
        {
            foreach (Touch touch in Input.touches)
            {
                if (touch.fingerId == FingerId)
                {
                    touchPosition    = touch.position;
                    foundActiveTouch = true;
                    break;
                }
            }
            if (!foundActiveTouch)
            {
                FingerId = ID_NONE;
            }
        }

        Vector3 diff;

        if (FingerId != ID_NONE)
        {
            diff   = (touchPosition - transform.position) / Radius;
            diff.z = 0;
            if (diff.magnitude > 1.0f)
            {
                diff = diff.normalized;
            }
        }
        else
        {
            diff = Vector3.zero;
        }
        HorizontalAxis.Axis = diff.x;
        VerticalAxis.Axis   = diff.y;

        Vector2 knobPos = transform.position + diff * Radius;

        Knob.transform.position = new Vector3(knobPos.x, knobPos.y, Knob.transform.position.z);
    }
Example #6
0
 void OnDestroy()
 {
     HybridInput.Unregister(HorizontalAxis);
     HybridInput.Unregister(VerticalAxis);
 }
Example #7
0
 void OnDestroy()
 {
     HybridInput.Unregister(this);
 }
Example #8
0
 void Awake()
 {
     HybridInput.Register(this);
     Label.enabled = ShowLabel;
     Label.text    = ButtonName;
 }
Example #9
0
 // Start is called before the first frame update
 void Start()
 {
     HybridInput.SetDebugMode(DebugMode);
     TouchInputUI.SetActive(DebugMode);
 }