コード例 #1
0
    /// <summary>
    /// Sets the sibling animations by destroying what the sibling has then replacing it
    /// </summary>
    private void SetSiblingAnimations(PlayerAnimationContainer genderAnimation)
    {
        Sibling youngSibling = GameObject.Find(StringsNPC.SiblingYoung).GetComponent<Sibling>();
        Sibling middleSibling = GameObject.Find(StringsNPC.SiblingMiddle).GetComponent<Sibling>();
        Sibling oldSibling = GameObject.Find(StringsNPC.SiblingOld).GetComponent<Sibling>();

        string gender = (playerGender == CharacterGender.MALE ? "Female" : "Male");

        youngSibling.ChangeGender(gender, genderAnimation.youngBoneAnimation);
        middleSibling.ChangeGender(gender, genderAnimation.middleBoneAnimation);
        oldSibling.ChangeGender(gender, genderAnimation.oldBoneAnimation);
        /*
        SmoothMoves.BoneAnimation youngSiblingAnimation = youngSibling.GetComponent<SmoothMoves.BoneAnimation>();
        SmoothMoves.BoneAnimation middleSiblingAnimation = middleSibling.GetComponent<SmoothMoves.BoneAnimation>();
        SmoothMoves.BoneAnimation oldSiblingAnimation = oldSibling.GetComponent<SmoothMoves.BoneAnimation>();

        for (int i = 0; i < youngSiblingAnimation.GetClipCount(); i++){
            youngSiblingAnimation.RemoveClip(youngSiblingAnimation[youngSiblingAnimation.GetAnimationClipName(i)].clip);
            middleSiblingAnimation.RemoveClip(middleSiblingAnimation[middleSiblingAnimation.GetAnimationClipName(i)].clip);
            oldSiblingAnimation.RemoveClip(oldSiblingAnimation[oldSiblingAnimation.GetAnimationClipName(i)].clip);
        }

        youngSibling.animationData = genderAnimation.youngBoneAnimation;
        middleSibling.animationData = genderAnimation.middleBoneAnimation;
        oldSibling.animationData = genderAnimation.oldBoneAnimation;

        for (int i = 0; i < genderAnimation.middleBoneAnimation.GetClipCount(); i++){
            string clipName = genderAnimation.youngBoneAnimation.GetAnimationClipName(i);
            youngSiblingAnimation.AddClip(genderAnimation.youngBoneAnimation[clipName].clip, clipName);
            Debug.Log("clip = " + clipName);

            clipName = genderAnimation.middleBoneAnimation.GetAnimationClipName(i);
            middleSiblingAnimation.AddClip(genderAnimation.middleBoneAnimation[clipName].clip, clipName);

            clipName = genderAnimation.oldBoneAnimation.GetAnimationClipName(i);
            oldSiblingAnimation.AddClip(genderAnimation.oldBoneAnimation[clipName].clip, clipName);
        }

        /*
        genderAnimation.youngBoneAnimation.transform.position = youngSibling.transform.position;
        SiblingYoung newSiblingYoung = genderAnimation.youngBoneAnimation.transform.gameObject.AddComponent<SiblingYoung>();
        newSiblingYoung.Init();
        newSiblingYoung.tag = Strings.tag_NPC;
        Collider tempCollider = newSiblingYoung.gameObject.AddComponent<BoxCollider>();
        tempCollider = youngSibling.collider;
        tempCollider.isTrigger = true;
        newSiblingYoung.animationData = genderAnimation.youngBoneAnimation;
        newSiblingYoung.SpriteLookingLeft = youngSibling.SpriteLookingLeft;
        genderAnimation.youngBoneAnimation.transform.parent = youngSibling.transform.parent;

        genderAnimation.middleBoneAnimation.transform.name = middleSibling.name;
        genderAnimation.middleBoneAnimation.transform.position = middleSibling.transform.position;
        SiblingMiddle newSiblingMiddle = genderAnimation.middleBoneAnimation.transform.gameObject.AddComponent<SiblingMiddle>();
        newSiblingMiddle.Init();
        newSiblingMiddle.tag = Strings.tag_NPC;
        tempCollider = newSiblingMiddle.gameObject.AddComponent<BoxCollider>();
        tempCollider.isTrigger = true;
        tempCollider = middleSibling.collider;
        newSiblingMiddle.animationData = genderAnimation.middleBoneAnimation;
        newSiblingMiddle.SpriteLookingLeft = middleSibling.SpriteLookingLeft;
        genderAnimation.middleBoneAnimation.transform.parent = middleSibling.transform.parent;

        genderAnimation.oldBoneAnimation.transform.name = oldSibling.name;
        genderAnimation.oldBoneAnimation.transform.position = oldSibling.transform.position;
        SiblingOld newSiblingOld = genderAnimation.oldBoneAnimation.transform.gameObject.AddComponent<SiblingOld>();
        newSiblingOld.Init();
        newSiblingOld.tag = Strings.tag_NPC;
        tempCollider = newSiblingOld.gameObject.AddComponent<BoxCollider>();
        tempCollider.isTrigger = true;
        newSiblingOld.gameObject.collider = tempCollider;
        newSiblingOld.animationData = genderAnimation.oldBoneAnimation;
        newSiblingOld.SpriteLookingLeft = oldSibling.SpriteLookingLeft;
        genderAnimation.oldBoneAnimation.transform.parent = oldSibling.transform.parent;

        Destroy(youngSibling.gameObject);
        Destroy(middleSibling.gameObject);
        Destroy(oldSibling.gameObject);*/
    }
コード例 #2
0
    /// <summary>
    /// Sets the gender. And will destroy the other gender data to save space
    /// </summary>
    private void SetGender(CharacterGender gender)
    {
        GameObject[] maleAnimations = GetMaleAnimations();
        GameObject[] femaleAnimations = GetFemaleAnimations();

        switch(gender){
            case CharacterGender.MALE:
                genderAnimationInUse = genderAnimations[(int)CharacterGender.MALE];
                siblingGenderAnimations = genderAnimations[(int)CharacterGender.FEMALE];
                DisableAnimations(maleAnimations);
                DisableAnimations(femaleAnimations);
                break;
            case CharacterGender.FEMALE:
                genderAnimationInUse = genderAnimations[(int)CharacterGender.FEMALE];
                siblingGenderAnimations = genderAnimations[(int)CharacterGender.MALE];
                DisableAnimations(femaleAnimations);
                DisableAnimations(maleAnimations);
                break;
        }
    }