gcmsx
Centipat
- Katılım
- 23 Mayıs 2022
- Mesajlar
- 35
Selam Unity C#'da bir araba mekaniği yazmıştım ve bu kodu Unity Asset Store'da olan Joystick Pack kodları ile birleştirecektim ancak 27. satırdaki " rb. AddForce(direction * Speed * Time. FixedDeltaTime, ForceMode. VelocityChange);" kısmında Speed değişkenini Vector ile değiştirince "CS0019 '*' işleci 'Vector3' ve 'Vector3' türündeki işlenenlere uygulanamaz" hatası alıyorum. Bu hatanın bir çözümü ya da alternatifi var mıdır? Şimdiden teşekkürler.
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class JoystickPlayerExample : MonoBehaviour
{
[SerializeField] float MinSpeed;
[SerializeField] float MaxSpeed;
[SerializeField] float dragAmount;
[SerializeField] float steerAngle;
[SerializeField] float Traction;
Vector3 _MoveVec;
public float speed;
public VariableJoystick variableJoystick;
public Rigidbody rb;
public void FixedUpdate()
{
_MoveVec += transform.forward * MinSpeed * Time.deltaTime;
transform.position += _MoveVec * Time.deltaTime;
transform.Rotate(Vector3.up * Input.GetAxis("Vertical") * steerAngle * Time.deltaTime * _MoveVec.magnitude); //Dönüş , manevra açısı
//joystick
Vector3 direction = Vector3.forward * variableJoystick.Vertical + Vector3.right * variableJoystick.Horizontal;
rb.AddForce(direction * speed * Time.fixedDeltaTime, ForceMode.VelocityChange);
//joystick
_MoveVec *= dragAmount; //Sürtünme kuvveti
_MoveVec = Vector3.ClampMagnitude(_MoveVec, MaxSpeed); //Minimum hızdan maksimum hıza çıkış
_MoveVec = Vector3.Lerp(_MoveVec.normalized, transform.forward, Traction * Time.deltaTime) * _MoveVec.magnitude;
}
}
Son düzenleyen: Moderatör: