- Home /
Character falls through upwards slope
I have a 3D game in unity, with a camera perspective mimicing that of games the likes of Diablo II. I have a script that is moving the character around based on where the mouse is clicked. The character moves down the slope fine, following the levels but when the character is moved back up the slope it passes through and continues to fall the level and I am slightly confused. Also, the rotation is not working properly but I am unsure why.
Any hep would be greatly appreciated.
private var move : boolean = false;
var hit : RaycastHit;
var smooth : float = 2.5;
function Update ()
{
if (Input.GetButton ("Fire1"))
{
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if(Physics.Raycast(Camera.main.transform.position, ray.direction, hit, 1000))
{
move = true ;
}
}
if(move)
{
var targetPosition = new Vector3(hit.point.x, this.transform.position.y, hit.point.z);
this.transform.LookAt(targetPosition);
var wantedPosition = Vector3(hit.point.x, targetPosition.y, hit.point.z);
transform.position = Vector3.MoveTowards(transform.position, wantedPosition, Time.deltaTime * smooth);
if(Vector3.Distance(transform.position, wantedPosition) < 0.01)
{
move = false;
}
}
}
Here is a screenshot of my character set up. I'm not sure if it is already utilising this move function that you are referring to and if it isn't how do I go about implementing it to prevent this error?
The CharacterController component has a $$anonymous$$ove function which accounts for slopes on its own. It's generally far easier to use that rather than attempt to replicate it with translations.
Please see above for some additional information and thank you for your response
Your answer
Follow this Question
Related Questions
A Character Controller with another shape. 0 Answers
colliding characters and meshes 0 Answers
Controller area of collision/contact 0 Answers
Not colliding with a box collider? 2 Answers