Ityক্য - বস্তুর জন্য জেড লেয়ারে অর্ডার করুন


11

দুঃখিত যদি শিরোনামটি আমার প্রশ্নটি ঠিক তেমন না করে থাকে তবে আমি কীভাবে এটি বর্ণনা করতে পারি তা সত্যই আমি জানি না।

আমার শহরের মেঝেতে একটি চিত্র এবং সমস্ত দেয়াল বা গাছের জন্য একটি চিত্র (একই আকার) রয়েছে যা খেলোয়াড়ের পিছনে পিছনে চলে গেলে মনে হয় যে এটি লুকিয়ে রয়েছে। আমার ফলাফল এমনকি এত খারাপ দেখাচ্ছে না:

সমস্যাটি হ'ল প্লেয়ার যদি দেয়ালের মুখোমুখি হয় তবে সে অদৃশ্য হয়ে যায় কারণ প্রাচীরের স্তরটি প্লেয়ারের ক্রমের উপরে থাকে:

এখানে চিত্র বর্ণনা লিখুন

এটি ঠিক করার কোনও সহজ উপায় আছে, বা আমাকে কী সমস্ত সেই জিনিসগুলি ম্যানুয়ালি যুক্ত করতে এবং কিছু স্ক্রিপ্টগুলিতে সংযুক্ত করতে হবে?

উত্তর:


17

এই প্রভাব অর্জন করতে:

দুটি বাছাই স্তর তৈরি করুন : গ্রাউন্ড এবং অবজেক্টস

আপনার রাস্তা, ঘাস এবং পথের স্প্রাইটগুলি গ্রাউন্ড স্তরটি ব্যবহার করুন।

আপনার চরিত্র, দেয়াল এবং বাড়ির স্প্রিটগুলি অবজেক্ট স্তরটি ব্যবহার করুন।

আপনার অবজেক্ট লেয়ারের স্প্রাইটগুলি তাদের স্প্রিট মোড পিভট পয়েন্টটি নীচের বাম, নীচে বা নীচে ডান হতে চাইবে। আপনি আপনার প্রকল্প ট্যাবের মধ্যে একটি স্প্রিট নির্বাচন করে এটি চয়ন করতে পারেন এবং স্প্রাইটের আমদানি সেটিংসকে সামঞ্জস্য করতে ইন্সপেক্টর ট্যাবটিতে পাইভট পয়েন্টটি চয়ন করতে পারেন ।

স্প্রাইট আমদানি সেটিংস

গ্রাউন্ড স্প্রেটসের জন্য, তাদের ক্রম পরিবর্তন করার বিষয়ে আপনাকে চিন্তা করতে হবে না।

বস্তুর জন্য, তবে আপনি তাদের পরিবর্তন করতে পারেন স্প্রাইট রেন্ডারারের বাছাইয়ের ক্রম , বা তাদের transform.position.zমান পরিবর্তন করতে পারেন । আমি রূপান্তরটি পরিবর্তনের পরামর্শ দিচ্ছি, কারণ আপনার চরিত্রটি চারপাশে সরানোর সাথে সাথে সম্ভবত ভাসমানগুলি সন্ধান করা এবং সামঞ্জস্য করা সহজতর হবে, তবে বাছাইয়ের ক্রম পরিবর্তন করা আপনার সামগ্রীর পরিমাপ এবং আকারের উপর নির্ভর করে কিছু পরিস্থিতিতে যথাযথ না দেখায় দৃশ্যে

উভয় ক্ষেত্রেই কিছু কোডের প্রয়োজন হবে।

public class SpritePositionSetter : MonoBehaviour {

    void Awake () {
        SetPosition();
    }

    void Update () {
        SetPosition();
    }

    void SetPosition () {
        // If you want to change the transform, use this
        Vector3 newPosition = transform.position;
        newPosition.z = transform.position.y;
        transform.position = newPosition;

        // Or if you want to change the SpriteRenderer's sorting order, use this
        GetComponent<SpriteRenderer>().sortingOrder = (int)transform.position.y;
    }

}

এটি করার যে কোনও উপায়ের জন্য, আপনি মূলত স্প্রিটকে বলছেন যে এর জেড সূচকটি তার ওয়াই অবস্থানের সাথে মেলে।

আপনি যদি এই স্ক্রিপ্টটি কোনও স্থির অবজেক্টের সাথে (দেয়ালের মতো) সংযুক্ত করেন তবে আপনি পরিদর্শকের অংশটি আনটিক করতে চাইবেন যাতে এর Updateপদ্ধতিটি প্রতিটি ফ্রেমকে ডাকা হয় না; তার Awakeপদ্ধতি কল করবেSetPosition একবার এবং আপনার প্রয়োজন।

তবে আপনার চরিত্রের জন্য, উপাদানটিকে টিক চিহ্ন দিয়ে রেখে দিন যাতে প্রতিটি ফ্রেম Updateকল SetPositionকরবে যা আপনার চারপাশে যাওয়ার সাথে সাথে চরিত্রটির জেড ক্রম পরিবর্তন করবে। এবং আপনি সরানোর সময় অবজেক্ট লেয়ারের প্রতিটি স্প্রিট বটম পিভট পয়েন্ট ব্যবহার করছেন, জেড ইনডেক্সটি পরিবর্তন করার সাথে সাথে আপনার অক্ষরটি যথাযথভাবে অন্য বস্তুর সামনে বা পিছনে উপস্থিত হবে তা নিশ্চিত হবে।

আপনার ক্যামেরা সেটআপের উপর নির্ভর করে -1যদি জিনিসগুলি পিছন দিকে মনে হয় তবে আপনাকে নতুন জেড পজিশনে গুণ করতে হবে ।

আপনার দৃশ্য সম্পাদনা করার সময় আপনি যদি জেড সূচকটি সামঞ্জস্য করতে চান তবে এক্সিকিউটআইএনইডিটমোডটি দেখুন


আমি দৃ sure়ভাবে নিশ্চিত যে এই উপাদানটি যদি অবিরত হয় তবে স্টার্ট () শুরু হবে না এবং চালিত হবে না। জাগ্রত () একটি নিষ্ক্রিয় উপাদান চালায়, কিন্তু শুরু হয় না।
উরি পপভ

সবেমাত্র যাচাই করা হয়েছে; আপনি সঠিক। Awakeপরিবর্তে ব্যবহারের জন্য উদাহরণটি আপডেট করেছি । ধন্যবাদ
ক্রিস ম্যাকফারল্যান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.