ইউনিটিতে রানটাইম সময়ে একটি ইন্টারেক্টিভ কাপড় থেকে জাল কীভাবে সংরক্ষণ করবেন?


10

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

কেউ কি সেই আকৃতির অনুলিপি পাওয়ার কোনও উপায় জানেন?

উদাহরণস্বরূপ রানটাইমের সময় ইন্টারেক্টিভ কাপড় থেকে জাল পড়া এবং তারপরে ইন্টারেক্টিভ ক্লথ উপাদান ছাড়াই আমি কীভাবে এটি চাই তা জালটি পরিবর্তন করতে ব্যবহার করে।

কোন সাহায্যের ব্যাপকভাবে প্রশংসা হবে।


বিকল্পভাবে, আপনি ব্লেন্ডারের মতো কিছুতে কাপড় সিমুলেশন করতে পারেন, জাল সংরক্ষণ করতে পারেন এবং এটি একতার মধ্যে আমদানি করতে পারেন। অনলাইনে কীভাবে করা যায় সে সম্পর্কে প্রচুর টিউটোরিয়াল রয়েছে।
পিথর

উত্তর:


0

একটি সহজ আচরণ এবং কাস্টম পরিদর্শক সাহায্য করবে। এটি আপনার স্ক্রিপ্টগুলিতে যুক্ত করুন:

using UnityEngine;
using UnityEditor;
using System.Collections;

public class SaveMeshBehaviour : MonoBehaviour
{
    public Mesh GetMesh()
    {
        return gameObject.GetComponent<MeshFilter>().sharedMesh;
    }
}

[CustomEditor(typeof(SaveMeshBehaviour))]
public class SaveMeshInspector : Editor
{
    public override void OnInspectorGUI()
    {
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Save"))
        {
            var saveB = target as SaveMeshBehaviour;
            if (saveB != null)
            {
                var mesh = saveB.GetMesh();

                var copy = Mesh.Instantiate(mesh);
                AssetDatabase.CreateAsset(copy, "Assets/NewMesh.asset");
                AssetDatabase.SaveAssets();
            }
        }
        GUILayout.EndHorizontal();
    }
}

তারপরে দৃশ্যে আপনার কাপড়ে SaveMeshBehaviour যুক্ত করুন। কাস্টম পরিদর্শক নতুন উপাদান একটি সেভ বোতাম আছে করতে হবে। আপনি যখন আপনার দৃশ্যটি খেলছেন, সেভ বোতামটি ক্লিক করুন এবং এটি একটি জাল সংরক্ষণ করবে যা বিমানের অনুলিপি।

আশাকরি এটা সাহায্য করবে!


2
ধন্যবাদ তবে এটি আমার উদাহরণের জন্য কাজ করবে না কারণ সেখানে কোনও মেশফিল্টার সংযুক্ত নেই। ইন্টারেক্টিভ ক্লথ উপাদানটি জাল ধারণ করে কারণ এটি। আমি আপনার স্ক্রিপ্টটি পরিবর্তন করার চেষ্টা করেছি তবে আমি কেবল "<InteractiveCloth> () .আর্টিসিস" এবং "<InteractiveCloth> () .মেশ" অ্যাক্সেস করতে পারি। আমি মনে করি এটির জালটি যে জালটি ধারণ করে তা পরিবর্তিত হয় না যখন আমি আপনার স্ক্রিপ্টটি জাল অ্যাক্সেস করতে ব্যবহার করি এটি কেবল আসল জালাকে আউটপুট করে। আমি মনে করি যে শিখাগুলি পরিবর্তন করা হচ্ছে তবে নতুন জাল তৈরি করতে কীভাবে এটি ব্যবহার করবেন তা আমি জানি না।
রেবদেভ

আপনি যদি শিখুন এবং জাল এর অ্যারে পেতে পারেন। জাল অনুলিপি করার চেষ্টা করুন এবং তারপরে copy.vertices = cloth.vertices উপরের মত অনুলিপি থেকে একটি সম্পদ তৈরি করে এটি অনুসরণ করুন। নিশ্চিত নয় যে এটি কাজ করবে, তবে এটি কার্যকর হতে পারে।
প্যাট্রিকশর্বগ

দুর্ভাগ্যক্রমে এটি ত্রুটিটি দেয় "মেশা.আর্টওয়্যারিস খুব ছোট The
রেবডেভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.