Страница 1 из 1

Помогите, пож, со скриптом

СообщениеДобавлено: 13 фев 2018, 23:34
Mari4og
Есть перс, части одежды префабами и скрипт для одежды:

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

public class CopyBones : MonoBehaviour
{

    public GameObject SourceObject;

    void Start()
    {
        Copy();
    }

    void Copy()
    {
        if (SourceObject == null) return;

        var sourceRenderer = SourceObject.GetComponent<SkinnedMeshRenderer>();
        var targetRenderer = GetComponent<SkinnedMeshRenderer>();

        if (sourceRenderer == null) return;
        if (targetRenderer == null) return;

        targetRenderer.bones =
            sourceRenderer.bones.Where(b => targetRenderer.bones.Any(t => t.name == b.name)).ToArray();


    }
}


Можно ли переписать данный скрипт таким образом, чтобы SourceObject был не публичным, а явно указанным?))
Изображение Изображение

Re: Помогите, пож, со скриптом

СообщениеДобавлено: 14 фев 2018, 13:16
юnity
Да.
Синтаксис:
Используется csharp
GameObject SourceObject = GameObject.Find("GenesisShape");

Re: Помогите, пож, со скриптом

СообщениеДобавлено: 14 фев 2018, 14:40
Mari4og
Спасибо огромное за ответ.
Поправил скрипт, но Unity выдаёт ошибку:
"Find is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead. Called from MonoBehaviour 'CopyBones2'.
See "Script Serialization" page in the Unity Manual for further details."
Unity Manual на предмет "Script Serialization" я обязательно посмотрю... но, так как я не программер, не думаю, что мне это поможет )).
Вся надежда на Вас.

Re: Помогите, пож, со скриптом

СообщениеДобавлено: 14 фев 2018, 16:24
Friend123
Правильно, оно и не сработает, надо писать так:
Синтаксис:
Используется csharp
    void Copy()
    {
        SourceObject = GameObject.Find("SomeObject");
        if (SourceObject == null) return;
        ........
    }
 

Re: Помогите, пож, со скриптом

СообщениеДобавлено: 14 фев 2018, 20:30
Mari4og
Спасибо огромное. Работает!