- Home /
Question by
Giakaama · Jun 11, 2014 at 10:28 AM ·
animation controllervector3.positionvector3.slerp
Alien Swarm Control with Mecanim
Hi, I'm trying to build a player controller like the Angry Bots or Alien Swarm. The LookAt script is working but when rotating is rotating the entire player object. I want only the Body ( torso ) of the player to rotate ( just like in Angry Bots or Alien Swarm ).
Do you have any ideea how to do this with Mecanim ? Because I'm using Mecanim to Animate the Player. Here is the script. I was thinking rotating the torso of the player but it doesn't work like I thought.
using UnityEngine;
using System.Collections;
public class LookAtScript : MonoBehaviour {
public float speed;
public GameObject cursorPrefab;
private Transform cursorObject;
public float distanceFromCamera = 10f;
private Animator anim;
void Start ()
{
if (cursorPrefab) {
cursorObject = (Instantiate (cursorPrefab) as GameObject).transform;
}
anim = GetComponent<Animator>();
}
void Update()
{
Screen.showCursor = false;
Screen.lockCursor = false;
Vector3 pos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0);
Ray ray = Camera.main.ScreenPointToRay(pos);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
cursorObject.transform.position = hit.point;
}
}
void FixedUpdate()
{
Vector3 playerPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0);
Plane playPlane = new Plane(Vector3.up, transform.position);
Ray ray = Camera.main.ScreenPointToRay(playerPos);
float hitDistance = 0.0f;
if (playPlane.Raycast(ray,out hitDistance))
{
Vector3 targetPoint = ray.GetPoint(hitDistance);
//Vector3 targetRotationY = new Vector3(0f,anim.GetBoneTransform(HumanBodyBones.Chest).rotation.y,0f);
Quaternion targetRotation = Quaternion.LookRotation(targetPoint-transform.position);
//Quaternion targetRotation = Quaternion.LookRotation( targetPoint - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation,targetRotation, speed*Time.deltaTime);
//anim.GetBoneTransform(HumanBodyBones.Chest);
}
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613151303im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Vector3.Slerp normal 1 Answer
Skips off block when landing 0 Answers
Camera Rotate animation 0 Answers
How Do I make a cutscene or add a video in my game? 2 Answers
Character animation position 1 Answer