u3d_插件DoTween:(03)控制Cube和UI面板的动画
u3d_插件DoTween:(03)控制Cube和UI面板的动画
宇鸿165 发表于12个月前
u3d_插件DoTween:(03)控制Cube和UI面板的动画
  • 发表于 12个月前
  • 阅读 26
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

一、步骤

1.创建一个cube
2.从(0,0,0)到(10,10,10)的位置变化
3.定义一个属性,持有cube,然后执行动画在方法Update里面执行
	public Transform cubeTransform;
  void Start () {
		DOTween.To( ()=>myValue, x=>myValue = x, new Vector3(10,10,10),2);
}
	void Update () {
		// 这样就确保 cube的每一帧都会和 myValue保存一致
		cubeTransform.position = myValue;		
	}

4.对UI使用Dotween(image、text)
5.修改myValue的默认值的为 image的原始位置
5.1 通过代码修改myValue到终点位置 
5.2 将myValue的值 进行和UI同步
6.移动的时候 有问题,可能taskPanelTransform 移动的是世界坐标(所以我们需要设置局部坐标)
	taskPanelTransform.localPosition = myValue;
7.对float的类型 做一个动画 (可以实现渐变效果)

#####二、错误

UnassignedReferenceException: The variable taskPanelTransform of GetStart has not been assigned.
You probably need to assign the taskPanelTransform variable of the GetStart script in the inspector.
UnityEngine.Transform.set_position (Vector3 value) (at /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/TransformBindings.gen.cs:28)
GetStart.Update () (at Assets/Scripts/GetStart.cs:36)


没有UI里面对taskPanelTransform属性进行绑定

#####三、code

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening; // 引入命名空间

public class GetStart : MonoBehaviour {


	public Vector3 myValue = new Vector3(0,0,0); // 创建一个变量 ,默认值为000

	public Transform cubeTransform; // cube 

	public RectTransform taskPanelTransform; // 任务面板的位置

	public float myValue2 = 0; // 可以用来做渐变效果

	void Start () {

		// 对变量做一个动画(通过差值的方式去修改一个值的变化)
		// 当前的值 到 另外一个值
		// To方法使用到了 C#里面的lambda表达式(前面两个参数,两个委托类型,两个方法) (可以查看c#教程)
		// x = myValue
	
		/*
		 第一个参数 : ()=>myValue 对这个值进行修改,把myValue返回
		 第二个参数 : x=>myValue = x 。修改的值 赋值给myValue . 传递一个值 DoTween已经帮我们计算好的值。把这个值赋值给myValue myValue=x		 
		 第三个参数 :  整个动画的目标值
		 第四个参数 : 由当前值到目标值 需要的时间
		*/

//		DOTween.To( ()=>myValue, x=>myValue = x, new Vector3(0,0,0),2);
		DOTween.To(()=>myValue2,x=>myValue2 =x ,10,2);


	}
	
	void Update () {
		// 这样就确保 cube的每一帧都会和 myValue保存一致
//		cubeTransform.position = myValue;		
//		taskPanelTransform.position = myValue;
		taskPanelTransform.localPosition = myValue;

	}
} 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 154
码字总数 368963
×
宇鸿165
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: