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

Программирование на Юнити.

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

Сообщение Mari4og 13 фев 2018, 23:34

Есть перс, части одежды префабами и скрипт для одежды:

Синтаксис:
Используется 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 был не публичным, а явно указанным?))
Изображение Изображение
Mari4og
UNец
 
Сообщения: 25
Зарегистрирован: 26 авг 2015, 09:20

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

Сообщение юnity 14 фев 2018, 13:16

Да.
Синтаксис:
Используется csharp
GameObject SourceObject = GameObject.Find("GenesisShape");
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

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

Сообщение Mari4og 14 фев 2018, 14:40

Спасибо огромное за ответ.
Поправил скрипт, но 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" я обязательно посмотрю... но, так как я не программер, не думаю, что мне это поможет )).
Вся надежда на Вас.
Mari4og
UNец
 
Сообщения: 25
Зарегистрирован: 26 авг 2015, 09:20

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

Сообщение Friend123 14 фев 2018, 16:24

Правильно, оно и не сработает, надо писать так:
Синтаксис:
Используется csharp
    void Copy()
    {
        SourceObject = GameObject.Find("SomeObject");
        if (SourceObject == null) return;
        ........
    }
 
Аватара пользователя
Friend123
Старожил
 
Сообщения: 701
Зарегистрирован: 26 фев 2012, 22:12
Откуда: Тверь
  • ICQ

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

Сообщение Mari4og 14 фев 2018, 20:30

Спасибо огромное. Работает!
Mari4og
UNец
 
Сообщения: 25
Зарегистрирован: 26 авг 2015, 09:20


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8