跟自己实现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. ORACLE启动 切换实例命令

    启动服务器的其他实例 export ORACLE_SID=数据库实例名 sqlplus /nolog conn /as sysdba select name from v$database; !lsn ...

  2. [51nod1357]密码锁 暨 GDOI2018d1t2

    有一个密码锁,其有N位,每一位可以是一个0~9的数字,开启密码锁需要将锁上每一位数字转到解锁密码一致.这个类似你旅行用的行李箱上的密码锁,密码锁的每一位其实是一个圆形转盘,上面依次标了0,1,...9 ...

  3. 一个 go 文件服务器 ssdb

    file system ssdb go http listen 文件存储到 ssdb gfs | twemproxy | ssdb(master) ssdb(slave) ssdb 连接协议为 red ...

  4. mysql 按年月查询

    查询2017的数据:select * from table where year(column)='2017';查找月份为12的数据:select * from table where month(c ...

  5. JSON Bean 相互转换工具(效率是Gson的两倍以上)

    本帖最后由 xuehuayous 于 2015-12-24 08:44 编辑 前几天想封装一个自定义控件,用到Json解析,以前都使用Gson来解析Json数据的,但是想到一个简单的自定义控件就没必要 ...

  6. openGl 基础

    最近由于手机项目中需要用到OpenGL ES的知识,所以这段时间正在研究OpenGL的相关知识.因为OpenGL ES是OpenGL的剪裁版本,所以我直接从OpenGL入手,然后再去看OpenGL E ...

  7. Android 卡顿优化 4 布局优化实际技巧

    今天分享一些layout布局书写中的一些技巧,希望看过之后你也一样可以写出性价比高的布局.我个人的目标是用最少的View写出一样效果的布局.因为我相信View的数量减少伴随着的就是层级的减少.从而达到 ...

  8. Android内存优化5 了解java GC 垃圾回收机制3

    引言 接App优化之内存优化(序), 作为App优化系列中内存优化的一个小部分. 由于内存相关知识比较生涩, 内存优化中使用到的相关工具, 也有很多专有名词. 对Java内存管理, GC, Andro ...

  9. Tile based Rendering //后面一段是手机优化建议

    https://www.imgtec.com/blog/a-look-at-the-powervr-graphics-architecture-tile-based-rendering/ 一种硬件结构 ...

  10. TensorFlow------读取图片实例

    TensorFlow------读取图片实例: import tensorflow as tf import os def readpic(filelist): ''' 读取人物图片并转换成张量 :p ...