Unity karakterleri hareket etmiyor

JURVET

Megapat
Katılım
30 Nisan 2017
Mesajlar
464
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Merhaba, bu videodaki her şeyi yaptım. Unity öğrenmeye çalışıyorum ancak karakterim hareket etmiyor. WASD'ye basınca etrafında dönüyor ancak hareket etmiyor. Yardım eder misiniz? Video.

Animasyonda falan sağ altta karakter yürüyor ancak play yapınca yürümüyor.

[CODE title="kod"]using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class control : MonoBehaviour.
{
float inputX;
float inputY;

public Transform Model;

Animator Anim;

Vector3 stickdirection;

Camera mainCam;

public float Damp;

[Range(1,20)]
public float rotationSpeed;

void Start()
{
Anim = GetComponent<Animator>();
mainCam = Camera.main;

}

private void LateUpdate()
{
inputX = Input.GetAxis("Horizontal");
inputY = Input.GetAxis("Vertical");

stickdirection = new Vector3(inputX, 0, inputY);

Inputmove();
InputRotation();

}

void Inputmove()
{
Anim.SetFloat("Speed",Vector3.ClampMagnitude(stickdirection, 1).magnitude , Damp , Time.deltaTime * 100);

}

void InputRotation()
{
Vector3 rotOfset = mainCam.transform.TransformDirection(stickdirection);
rotOfset.y = 0;

Model.forward = Vector3.Slerp(Model.forward, rotOfset, Time.deltaTime * rotationSpeed);

}

}
[/CODE]
 
Son düzenleyen: Moderatör:
[CODE lang="csharp" title="kod"]using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{


private CharacterController controller;

//Player Controller
public float speed = 2f;


//Camera Controller
public float mouseSensitivity = 100f;
private float xRotation = 0f;

//Jump and Grav
private Vector3 velocity;
private float gravity = -9.81f;
private bool isGround;
public float jumpHeight = 0.1f;
public float gravityDivide = 100f;

public Transform groundChecker;
public float groundCheckerRadius;
public LayerMask obstacleLayer;


private void Awake()
{
controller = GetComponent<CharacterController>();

//Cursor
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
private void Update()
{

//Check character is grounded
isGround = Physics.CheckSphere(groundChecker.position, groundCheckerRadius, obstacleLayer);


Vector3 moveInputs = Input.GetAxis("Horizontal") * transform.right + Input.GetAxis("Vertical") * transform.forward;
Vector3 moveVelocity = moveInputs * Time.deltaTime * speed;
controller.Move(moveVelocity);

transform.Rotate(0, Input.GetAxis("Mouse X")* Time.deltaTime * mouseSensitivity,0);
xRotation -= Input.GetAxis("Mouse Y") * Time.deltaTime * mouseSensitivity;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);

Camera.main.transform.localRotation = Quaternion.Euler(xRotation, 0, 0);





//Jump and Grav
if (!isGround)
{
velocity.y += gravity * Time.deltaTime / gravityDivide;

}
else
{
velocity.y = -0.05f;

}

if (Input.GetKeyDown(KeyCode.Space) && isGround)
{
velocity.y = Mathf.Sqrt(jumpHeight *gravity / gravityDivide * -2f);
}

print(velocity);
controller.Move(velocity);
}

}[/CODE]
Bu koda göre düzenleyebilirsin.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı