আমি বর্তমানে একই সমস্যার মুখোমুখি হয়েছি এবং আমার সমাধানটি হ'ল ডকমেস্ট্রো এবং রাভেন ড্রিমার পরামর্শ দিয়েছিলেন - এমন একটি স্ক্রিপ্ট রয়েছে যা রানটাইমের সময় 4 টি শিশু অবজেক্ট তৈরি করে যার প্রত্যেকটিই সীমান্তের একটি অংশকে উপস্থাপন করে এবং প্রতিটিটির সাথে লাইন রেন্ডারগুলি সংযুক্ত করে।
আমার ক্ষেত্রে সীমানাকে আমার অবজেক্টের চারপাশে রাখার জন্য ক্রমাগত আকার পরিবর্তন করতে হবে (একটি পাঠ্য জাল [যা একটি জাল রেন্ডার ব্যবহার করে] কাস্টম পাঠ্য ক্ষেত্রের জন্য) তাই প্রতিটি আপডেট আমি এটি করেছিলাম:
float width = Mathf.Max(renderer.bounds.size.x + paddingX * 2, minWidth);
float x = renderer.bounds.center.x - width / 2;
float height = renderer.bounds.size.y + paddingY * 2;
float y = renderer.bounds.center.y - height / 2;
AlterBorder(0, new Vector3(x - thickness / 2, y, 0), new Vector3(x + width + thickness / 2, y, 0)); //Bottom edge going left to right
AlterBorder(1, new Vector3(x + width, y + thickness / 2, 0), new Vector3(x + width, y + height - thickness / 2, 0)); //Right edge going bottom to top
AlterBorder(2, new Vector3(x + width + thickness / 2, y + height, 0), new Vector3(x - thickness / 2, y + height, 0)); //Top edge going right to left
AlterBorder(3, new Vector3(x, y + height - thickness / 2, 0), new Vector3(x, y + thickness / 2, 0)); //Left edge going top to bottom
AlterBorder()
কেবলমাত্র উপযুক্ত লাইন রেন্ডারার অ্যাক্সেস করে (প্রথম প্যারামিটার দ্বারা নির্দিষ্ট করা) এবং এর শুরু এবং শেষটি যথাক্রমে প্রথম এবং দ্বিতীয় ভেক্টরটিতে সেট করে।
নোট করুন যে আমি renderer
আকারের জন্য আমার রেফারেন্স হিসাবে ব্যবহার করেছি তবে স্পষ্টতই আপনি কোনও আয়তক্ষেত্র ব্যবহার করতে পারবেন, যতক্ষণ না x, y শীর্ষ বাম কোণে থাকে corner
আমি যা সত্যিই এটির কাজটি বলতে পারি তা থেকে খেলাতে দুর্দান্ত দেখাচ্ছে কারণ আমি আমার বর্ডারযুক্ত অবজেক্টটি সহজেই সমস্ত 3 অক্ষের মধ্যে ঘুরিয়ে দিতে পারি (এমনকি এটি ঘোরানও এবং যেহেতু লাইন রেন্ডাররা সর্বদা ক্যামেরার মুখোমুখি হয় তা অদ্ভুত লাগে না) এবং হয় কার্যকর করা কঠিন নয়।