前的游戏项目,需要找到正确的榫卯部件,移动到靠近正确拼接的部件时,触发模型的拼接动画,榫卯物品开始拼接,动画开始4s后触发“变身”特效,模型替换,拼接完成后会有指示的游戏UI提示出现。演示过程如下图所示:
实现代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Pig2 : MonoBehaviour
{
public GameObject cube1;
public GameObject cube2;
//后面显示的有颜色的模型
public GameObject birdgood;
public GameObject birdbad;
private double distance;
public Animation animation;
//public GameObject skillEffect;
private bool flag;
private float timer = 4.0f;
public GameObject image;
//public GameObject image2;
public GameObject step;
void Start()
{//一开始隐藏有颜色的模型
flag = true;
birdgood.SetActive(false);
image.SetActive(false);
step.SetActive(false);
birdbad.SetActive(true);
//image2.SetActive(false);
}
void Update()
{
distance = Vector3.Distance(cube1.transform.position, cube2.transform.position);
print(distance);
if (distance < 1.52)
{
if (flag)
{
//Debug.Log("need animation");
animation = GetComponent<Animation>();//找到Animation组件
//animation.enabled = true;
animation.Play("CINEMA_4D___");
flag = false;
}
else
{//动画开始后计时5秒后模型替换
timer -= Time.deltaTime;
if (timer <= 0)
{
//Instantiate(skillEffect);
birdgood.SetActive(true);
birdbad.SetActive(false);
//AudioSource.PlayClipAtPoint(AC, transform.localPosition);
Invoke("showImage", 2);
Invoke("hideImage", 4);
Invoke("showImage2", 4);
Invoke("hideImage2", 6);
Invoke("showStep", 6);
Invoke("hideStep", 10);
}
}
}
}
public void showImage()
{
image.SetActive(true);
}
public void showImage2()
{
//image2.SetActive(true);
}
void hideImage2()
{
//image2.SetActive(false);
}
public void showStep()
{
step.SetActive(true);
}
void hideImage()
{
image.SetActive(false);
}
void hideStep()
{
step.SetActive(false);
}
}