unity, itween 对不透明对象使用FadeTo需要先更换material
跟自己实现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的更多相关文章
- unity, itween, closed path
- 【Unity Shaders】Diffuse Shading——向Surface Shader添加properties
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- Unity Glossary
https://docs.unity3d.com/2018.4/Documentation/Manual/Glossary.html 2D terms 2D Physics terms AI term ...
- 网格导入设置 Import settings for Meshes
原地址:http://game.ceeger.com/Components/FBXImporter-Model.html The Import Settings for a model file wi ...
- iTween for Unity
你曾经在你的游戏中制作过动画吗?问这个问题可能是愚蠢的,几乎每个Game都有动画,虽然有一些没有,但你必须处理有动画和没有动画.让我们结识 ITween. iTween 官方网站:http://itw ...
- 【转】iTween for Unity
http://www.cnblogs.com/zhaoqingqing/p/3833321.html?utm_source=tuicool&utm_medium=referral 你曾经在你的 ...
- unity开源移动库iTween使用完整Demo
public Vector3[] paths; // Use this for initialization void Start () { paths = ] { , , ), , , -) }; ...
- Unity路径规划
Unity路径规划 转自:http://www.cnblogs.com/zsb517/p/4090629.html 背景 酷跑游戏中涉及到弯道.不规则道路. 找来一些酷跑游戏的案例来看,很多都是只有 ...
- iTween研究院之学习笔记Move移动篇
最近项目中需要加入一些模型移动的小动画,学习过程中发现了iTween这个类库.它主要的功能就是处理模型从起始点到结束点之间运动的轨迹.(移动,旋转,音频,路径,摄像机等)它是一个开源 ...
随机推荐
- Educational Codeforces Round 8 E. Zbazi in Zeydabad 树状数组
E. Zbazi in Zeydabad 题目连接: http://www.codeforces.com/contest/628/problem/D Description A tourist wan ...
- Java反射机制的简单学习
今天看了一下Java的反射机制,就此记录一下. 首先,我们要先了解一下什么是反射? 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力. JAV ...
- MYSQL复习笔记13-触发器trigger
Date: 20140305Auth: Jin 一.概念1.基本概念触发器是一个被指定关联到一个表的数据对象,触发器是不需要调用的,当对一个表的特别事件出现时,它就被激活.触发器的代码也是由SQL语句 ...
- THttpClientSocket token验证
THttpClientSocket uses SynCrtSock非WINHTTP.DLL里面的控件,可以用于手机端. function Client(const SQL: RawUTF8): Raw ...
- Linux上安装使用SSH(ubuntu&&redhat)
转自:http://blog.csdn.net/zxs9999/article/details/6930736 Ubuntu安装使用SSH ubuntu默认并没有安装ssh服务,如果通过ssh链接ub ...
- Netty游戏服务器之五Unity3d登陆消息
今天我们来讲客户端Unity和服务器收发消息的具体过程. 首先,我们要在unity上搭建登陆界面的UI,这里呢,我用的是NGUI插件. 相信做过unity3d前端的都对这个非常的熟悉,最近官方的UGU ...
- 表单对象属性disabled和readOnly
简而言之: disabled 和 readonly 区别: disabled 被禁用后的元素,不会随表单提交 readonly 不可修改, 会随表单提交
- IntelliJ IDEA maven项目的基础配置
htt 选择编程风格File->Settings->Apprearance 配置maven路径,同样也是在settings Java Web项目配置 File->Project St ...
- synchronized-异常
对于web应用程序,异常释放锁的情况,很可能对你的应用程序业务逻辑产生必要严重的错误,比如:执行某个队列任务,很多对象都会去等待第一个对象正常执行的结果返回再次去释放锁,那么其中摸个对象发生执行异常了 ...
- Android轻量级的开源缓存框架ASimpleCache
点击查看原文 先上方法调用,写最经常使用的.其它不一一写 保存数据: ACache mACache=ACache.get(this); mACache.put("数据名称", js ...