- Home /
StackOverFlow Exception when animating object
Hello, still new to Unity and coding with C#. I've been following a tutorial to make a lockpicking mini game (similar to skyrim or fallout style) and have reached a wall:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LockPickingMiniGame : MonoBehaviour
{
float pickPosition;
public float PickPosition
{
get { return PickPosition; }
set
{
pickPosition = value;
pickPosition = Mathf.Clamp(pickPosition, 0f, 1f);
}
}
[SerializeField] float pickSpeed = 3f;
float cylinderPosition;
public float CylinderPosition
{
get { return cylinderPosition; }
set
{
cylinderPosition = value;
cylinderPosition = Mathf.Clamp(cylinderPosition, 0f, 1f);
}
}
Animator animator;
private void Awake()
{
animator = GetComponent<Animator>();
}
private void Update()
{
Pick();
UpdateAnimator();
}
private void Pick()
{
PickPosition += Input.GetAxis("Horizontal") * Time.deltaTime * pickSpeed;
}
private void UpdateAnimator()
{
animator.SetFloat("PickPosition", PickPosition);
}
}
When I click run in Unity, it doesn't even get a chance for me to press the A and D keys which is supposed to move the pick around the lock. I've looked up and down through the tutorial several times and tried recreating the object, and still the same error. Hopefully someone can see whatever issue I am having: it would be a great help. If more info is needed, I'll do my best to provide.
Answer by andrew-lukasik · Apr 13, 2021 at 07:36 AM
Replace:
get { return PickPosition; }
with:
get { return pickPosition; }
TL;DR: PickPosition
is referencing itself ad infinitum. This why pickPosition
should be called _pickPosition
so you don't confuse it with PickPosition
this easily.
Wow I can't believe I overlooked that small mistake, thanks so much. Normally I try to distinguish my variables differently in code, but was following a tutorial and wanted to make sure I was doing everything correct :) shouldn't be going against my habits.
Your answer
Follow this Question
Related Questions
I'm getting a StackOverFlowException 1 Answer
InputField add text 'StackOverflowException' error 1 Answer
Serialization depth limit exceeded 3 Answers
Unity web pallyer install problem 0 Answers