इस दिन मैं एकता के साथ एक 2D चरित्र नियंत्रक बनाने की कोशिश कर रहा हूँ (फ़िसिक्स का उपयोग करके)। मैं जिस्मानी इंजनों के लिए काफी नया हूँ और मुझे लग रहा है कि नियंत्रण महसूस करना वास्तव में कठिन है। अगर मैं किसी समस्या का हल खोज सकता हूं, तो मुझे बहुत खुशी होगी:
यह मेरा अभी फिक्स्ड है:
public void FixedUpdate()
{
Vector3 v=new Vector3(0,-10000*Time.fixedDeltaTime,0);
_body.AddForce(v);
v.y=0;
if(state(MovementState.Left))
{
v.x=-_walkSpeed*Time.fixedDeltaTime+v.x;
if(Mathf.Abs(v.x)>_maxWalkSpeed) v.x=-_maxWalkSpeed;
}
else if(state(MovementState.Right))
{
v.x= _walkSpeed*Time.fixedDeltaTime+v.x;
if(Mathf.Abs(v.x)>_maxWalkSpeed) v.x=_maxWalkSpeed;
}
_body.velocity=v;
Debug.Log("Velocity: "+_body.velocity);
}
मैं यहाँ कोशिश कर रहा हूँ कि कठोर शरीर को केवल एक गुरुत्वाकर्षण और बाएँ और दाएँ के लिए एक रैखिक बल लगाने के लिए स्थानांतरित किया जाए। मेरे पास एक ऐसी भौतिक सामग्री है जो चलती नहीं है और जब चलती है तो 0 घर्षण होता है और स्टैंड के साथ 1 घर्षण। मुख्य समस्या यह है कि मेरे पास ढलान के साथ कोलाइडर हैं और ऊपर जाने (धीमी) से वेग में परिवर्तन होता है, ढलान (तेज) से नीचे जा रहा है और एक सीधे कोलाइडर (सामान्य) पर चलता है। यह कैसे तय किया जा सकता है? जैसा कि आप देख रहे हैं कि मैं एक्स अक्ष के लिए समान वेग लागू कर रहा हूं।
खिलाड़ी के लिए मेरे पास यह पैरों की स्थिति पर एक क्षेत्र के साथ सेटअप है जो मैं जिस पर लागू कर रहा हूं वह कठोर है।
कोई अन्य टिप जो इस के साथ मेरे जीवन को आसान बना सकती है उसका स्वागत है :)।
पीडी घर आते समय मैंने देखा है कि मैं इसे एक स्थिर बल लगाने के लिए हल कर सकता हूं, जो खिलाड़ी को चल रही है, लेकिन यह नहीं पता कि यह सबसे अच्छा तरीका है।