मैं एकता में एक समायोज्य रस्सी बनाने की कोशिश कर रहा हूं और मैंने मूल रूप से एक सरणी संशोधक बनाया है।
मैं अंतिम इंडेक्स का उपयोग करके आखिरी तत्काल वस्तु प्राप्त कर सकता हूं लेकिन मैं वर्तमान वस्तु के हिंग संयुक्त को कैसे प्राप्त करूं और पिछली वस्तु के कठोर शरीर को वर्तमान वस्तुओं से जुड़े शरीर में जोड़ूं?
public class Rope : MonoBehaviour {
public GameObject Segment1;
int segmentName = 1;
public int ropeLength; // length of rope
GameObject[] segmentArray; // stores gameobjects in array
Rigidbody[] segmentRb; // stores rigidbodys
HingeJoint[] segmentHj; // stores Hingjoints
Vector3 newSegmentLoc;
void Start () {
segmentArray = new GameObject[ropeLength];
SpawnSegment();
}
void Update () {
}
void SpawnSegment(){
void SpawnSegment(){
for (int i = 1; i < ropeLength; i++) {
segmentArray [i] = Instantiate (Segment1, newSegmentLoc, Quaternion.identity) as GameObject; // spawn in clones
segmentArray [i].transform.parent = this.transform; // set parent of clones
segmentArray [i].transform.name = segmentName.ToString (); // change the name of clones
segmentName++;
//int currentIndex = Array.IndexOf (segmentArray, segmentArray [i]);
float yLoc = segmentArray [i].transform.position.y;
newSegmentLoc = new Vector3 (0, yLoc - 1, 0);
//int lastIndex = Array.LastIndexOf (segmentArray, segmentArray [i]);
Rigidbody rb = segmentArray [i].gameObject.GetComponent<Rigidbody>();
HingeJoint hj = segmentArray [i - 1].gameObject.GetComponent<Rigidbody>().GetComponent<HingeJoint>();
hj.connectedBody = rb;
}
Destroy (Segment1);
}
}
1 उत्तर
आपके फॉर-लूप में i
पहले से ही मौजूदा इंडेक्स है, आपको इसकी गणना करने की आवश्यकता नहीं है। यदि आप पिछला तत्व चाहते हैं, तो आप केवल segmentArray[i - 1]
कहें, यदि आप अगला चाहते हैं segmentArray[i + 1]
लेकिन सावधान, हो सकता है कि उन्हें प्रारंभ नहीं किया गया हो। यदि आप वर्तमान में सेगमेंटअरे [i + 1] प्राप्त करने का प्रयास करते हैं, तो यह शून्य हो जाएगा।
तो आप लूप के बाहर 0 वें तत्व को भी प्रारंभ करना चाहेंगे। यह आपको लूप को i = 1 से शुरू करने की अनुमति देता है और करंट को अगले से जोड़ने के बजाय, आप पिछले को करंट से जोड़ते हैं।
संबंधित सवाल
नए सवाल
unity3d
यूनिटी एक क्रॉस-प्लेटफॉर्म गेम इंजन है जो यूनिटी टेक्नोलॉजीज द्वारा बनाया गया है।