跟自己实现fade一样,使用itween对不透明对象FadeTo前也要先更换material为透明material。

设player的Hierarchy如下:

player

--aniRoot

----head

----body

其中head和body都挂有如下脚本:    

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Assertions.Must;
public class materialControl : MonoBehaviour {
    public List<string> m_keyList;
    public List<Material> m_matList;
    private Dictionary<string,Material> m_matDic=new Dictionary<string, Material>();//dictionary will not show in inspeactor
    void Awake(){
        int keyCount = m_keyList.Count;
        int matCount = m_matList.Count;
        keyCount.MustBeEqual(matCount);
        for (int i=0; i<keyCount; i++) {
            string key=m_keyList[i];
            Material mat=m_matList[i];
            m_matDic.Add (key,mat);
        }

}

public Material getMaterialByKey(string key){
        Material mat=null;
        bool isGot=m_matDic.TryGetValue (key,out mat);
        if (isGot) {
            return mat;
        } else {
            return null;
        }

}
    public void changeMaterialTo(string key){
        Material mat=getMaterialByKey (key);
        if (mat) {
            GetComponent<MeshRenderer> ().material = mat;
        } else {
            Debug.Log("error: material not found!");
        }
        
    }

}

player挂有如下脚本:

using UnityEngine;
using System.Collections;
using UnityEngine.Assertions.Must;
public class playerControl : MonoBehaviour {

  void fadeOut(){
    Transform aniRoot = transform.FindChild ("aniRoot");

    Transform[] allChildren = aniRoot.GetComponentsInChildren<Transform> ();

      foreach (Transform child in allChildren) {

       materialControl materialControlScript = child.GetComponent<materialControl> ();

       if (materialControlScript) {

         materialControlScript.changeMaterialTo ("fadeMat");

       }

     }  

     //ref: http://www.xuanyusong.com/archives/2052

     Hashtable args = new Hashtable();

     args.Add("alpha",0);

     args.Add("time",0.2f);

     args.Add ("oncomplete", "disActive");

     args.Add("oncompleteparams", gameObject);

     args.Add("oncompletetarget", gameObject);

     iTween.FadeTo (aniRoot.gameObject, args);

  }

  void disActive(GameObject target){
    target.SetActive (false);
  }

  ......

}

unity, itween 对不透明对象使用FadeTo需要先更换material的更多相关文章

  1. unity, itween, closed path

  2. 【Unity Shaders】Diffuse Shading——向Surface Shader添加properties

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  3. Unity Glossary

    https://docs.unity3d.com/2018.4/Documentation/Manual/Glossary.html 2D terms 2D Physics terms AI term ...

  4. 网格导入设置 Import settings for Meshes

    原地址:http://game.ceeger.com/Components/FBXImporter-Model.html The Import Settings for a model file wi ...

  5. iTween for Unity

    你曾经在你的游戏中制作过动画吗?问这个问题可能是愚蠢的,几乎每个Game都有动画,虽然有一些没有,但你必须处理有动画和没有动画.让我们结识 ITween. iTween 官方网站:http://itw ...

  6. 【转】iTween for Unity

    http://www.cnblogs.com/zhaoqingqing/p/3833321.html?utm_source=tuicool&utm_medium=referral 你曾经在你的 ...

  7. unity开源移动库iTween使用完整Demo

    public Vector3[] paths; // Use this for initialization void Start () { paths = ] { , , ), , , -) }; ...

  8. Unity路径规划

    Unity路径规划  转自:http://www.cnblogs.com/zsb517/p/4090629.html 背景 酷跑游戏中涉及到弯道.不规则道路. 找来一些酷跑游戏的案例来看,很多都是只有 ...

  9. iTween研究院之学习笔记Move移动篇

             最近项目中需要加入一些模型移动的小动画,学习过程中发现了iTween这个类库.它主要的功能就是处理模型从起始点到结束点之间运动的轨迹.(移动,旋转,音频,路径,摄像机等)它是一个开源 ...

随机推荐

  1. 【系统自启动】使用windows自带工具管理开机启动项

    1.windows+R,键入:msconfig 2.进入启动选项卡 3.将不用自启动的选项 取消勾选即可 点击应用,重启电脑即可

  2. [Java基础] Java线程复习笔记

    先说说线程和进程,现代操作系统几乎无一例外地采用进程的概念,进程之间基本上可以认为是相互独立的,共享的资源非常少.线程可以认为是轻量级的进 程,充分地利用线程可以使得同一个进程中执行多种任务.Java ...

  3. 安装Python3.6.x

    #安装依赖包 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel -y #下载Python3.6.x wget https:/ ...

  4. python命令行添加自动补全和命令历史功能

    # python startup file import readline import rlcompleter import atexit import os # tab completion re ...

  5. 摄像头模组 PDAF对焦(Phase Detection Auto Focus)

    本文主要是最近看的两个文档的总结,相对零散的笔记,包括<imx298 software reference PDAF>与<PDAF Truly>. 1.PDAF功能的实现需要使 ...

  6. FreeMarker最简单的例子(2)

    二.通过String来创建模版对象,并执行插值处理 代码: package com.abc; import freemarker.template.Template; import java.io.O ...

  7. github下fork后如何同步源的新更新

    当然,那是完全不用命令行的办法,其实我还是更推荐命令行,流程如下: 首先要先确定一下是否建立了主repo的远程源: git remote -v 如果里面只能看到你自己的两个源(fetch 和 push ...

  8. [TypeScript] Work with DOM Elements in TypeScript using Type Assertions

    The DOM can be a bit tricky when it comes to typing. You never really know exactly what you're going ...

  9. 安装ADT的时候,提示“Cannot complete the install because one or more required items could not be

    今天在安装ADT的时候,提示: Cannot complete the install because one or more required items could not be found. S ...

  10. Mybatis错误:Result Maps collection already contains value for 。。。。

    解决方法 原因:xml文件中存在重名对象,保持名称不要一样即可正常启动.因为我再次使用逆向工程生成mapper接口和xml文件时,忘了删除原来的xml文件,新生成的与旧的同时出现旧重复了. 那么我们在 ...