How do I rotate specific joints/bones using a script?
I created a basic humanoid character in Blender, and attached a rig to it and created several animations. I created a script and set up the Animator Controller such that my character will do specific animations when I press a key.
Now, I am trying to build on top of this by creating a script that will allow me to manipulate specific joints/bones by pressing a key. I know that bones in Unity are treated as Transform objects, but I do not know the correct syntax for selecting or rotating a specific bone. My end goal is to be able to press a button and have a specific joint (e.g. the left arm) rotate.
For reference, here is my current model.
Here is the current setup I have on the Animator.
And here is the code I have on my script.
using UnityEngine;
using System.Collections;
public class GraspScript : MonoBehaviour {
private Animator anim;
private int grasper;
// Use this for initialization
void Start () {
anim = GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown (KeyCode.Alpha1)) {
grasper = 1;
} else if (Input.GetKeyDown (KeyCode.Alpha2)) {
grasper = 2;
} else if (Input.GetKeyDown (KeyCode.Alpha3)) {
grasper = 3;
} else if (Input.GetKeyDown (KeyCode.Alpha4)) {
grasper = 4;
} else if (Input.GetKeyDown (KeyCode.Space)) {
grasper = 0;
}
anim.SetInteger ("grasp", grasper);
Debug.Log (grasper);
}
}
Thank you so much for your help!
Your answer
Follow this Question
Related Questions
Animation looks super janky while the game is running 0 Answers
Animation Running Game 0 Answers
Specific Animation not Playing 0 Answers
NEED HELP ANIMATING PLAYER MOVEMENT 0 Answers
Animation changes when marked as legacy 0 Answers