- 28 Ocak 2015
- 95
- 0
Arkadaşlar Merhaba
yarış oyunu yapmak için waypointimizi hazırladık ve haritamızı çizdik şimdi aracın yeşil topları izlemesi için kodumuzu ekleyeceğiz
waypoint konusuna gitmek için tıklayın
şimdi ben sizin zamanınızı boşa harcamıyım direk konuya geçiyim
elinizdeki araç modelini terraine bırakın ve her tekere bir wheel collider ekleyin
bunu yapmak için boş bir obje oluşturun ve wheel collider componenti ekleyin yuvarlak bir çizgi gelcek yuvarlak çizgileri tekerlere göre ayarlayıp üzerine koyun ve bu colliderleri hierarchy bölümünden araca atın araçta sabit kalsın
ve alttaki kodu .js olcak şekilde kaydetip araca atın ve colliderleri sağ bölümden atın
Colliderleri araca sırasıyla şöyle atın :
wheelFl ye Ön Sol collideri ekleyin
wheelFR ye Ön Sağ collideri ekleyin
wheelRl ye Arka Sol collideri ekleyin
wheelRR ye Arka Sağ collideri ekleyin
Kod:
Not: burdaki yazıların hepsini ben yazdım ve tamamen bana aittir alıntı yapılmadan paylaşılması yasaktır
BİR TEŞEKKÜRÜ ÇOK GÖRMEYELİM EMEĞE SAYGI !
yarış oyunu yapmak için waypointimizi hazırladık ve haritamızı çizdik şimdi aracın yeşil topları izlemesi için kodumuzu ekleyeceğiz
waypoint konusuna gitmek için tıklayın
şimdi ben sizin zamanınızı boşa harcamıyım direk konuya geçiyim
elinizdeki araç modelini terraine bırakın ve her tekere bir wheel collider ekleyin
bunu yapmak için boş bir obje oluşturun ve wheel collider componenti ekleyin yuvarlak bir çizgi gelcek yuvarlak çizgileri tekerlere göre ayarlayıp üzerine koyun ve bu colliderleri hierarchy bölümünden araca atın araçta sabit kalsın
ve alttaki kodu .js olcak şekilde kaydetip araca atın ve colliderleri sağ bölümden atın
Colliderleri araca sırasıyla şöyle atın :
wheelFl ye Ön Sol collideri ekleyin
wheelFR ye Ön Sağ collideri ekleyin
wheelRl ye Arka Sol collideri ekleyin
wheelRR ye Arka Sağ collideri ekleyin
Kod:
Kod:
var centerOfMass : Vector3;
var path : Array;
var pathGroup : Transform;
var maxSteer : float = 15.0;
var wheelFL : WheelCollider;
var wheelFR : WheelCollider;
var wheelRL : WheelCollider;
var wheelRR : WheelCollider;
var currentPathObj : int;
var distFromPath : float = 20;
var maxTorque : float = 50;
var currentSpeed : float;
var topSpeed : float = 150;
var decellarationSpeed : float = 10;
function Start () {
rigidbody.centerOfMass = centerOfMass;
GetPath();
}
function GetPath (){
var path_objs : Array = pathGroup.GetComponentsInChildren(Transform);
path = new Array();
for (var path_obj : Transform in path_objs){
if (path_obj != pathGroup)
path [path.length] = path_obj;
}
}
function Update () {
GetSteer();
Move();
}
function GetSteer(){
var steerVector : Vector3 = transform.InverseTransformPoint(Vector3(path[currentPathObj].position.x,transform.position.y,path[currentPathObj].position.z));
var newSteer : float = maxSteer * (steerVector.x / steerVector.magnitude);
wheelFL.steerAngle = newSteer;
wheelFR.steerAngle = newSteer;
if (steerVector.magnitude <= distFromPath){
currentPathObj++;
if (currentPathObj >= path.length)
currentPathObj = 0;
}
}
function Move (){
currentSpeed = 2*(22/7)*wheelRL.radius*wheelRL.rpm * 60 / 1000;
currentSpeed = Mathf.Round (currentSpeed);
if (currentSpeed <= topSpeed){
wheelRL.motorTorque = maxTorque;
wheelRR.motorTorque = maxTorque;
wheelRL.brakeTorque = 0;
wheelRR.brakeTorque = 0;
}
else {
wheelRL.motorTorque = 0;
wheelRR.motorTorque = 0;
wheelRL.brakeTorque = decellarationSpeed;
wheelRR.brakeTorque = decellarationSpeed;
}
}
Not: burdaki yazıların hepsini ben yazdım ve tamamen bana aittir alıntı yapılmadan paylaşılması yasaktır
BİR TEŞEKKÜRÜ ÇOK GÖRMEYELİM EMEĞE SAYGI !