零、最终效果
Unity模拟零件拆解组装
一、资源准备
1、iTween插件安装
地址:https://assetstore.unity.com/packages/tools/animation/itween-84
2、Unity版本
Unity 2022.3.26f1c1
二、主要原理
通过将零件的位置进行平滑移动,从而实现零件的拆解和组装
三、相关代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SplitAndMerge : MonoBehaviour
{
public GameObject[] startPos;
public GameObject[] endPos;
public Vector3[] temp;
// Start is called before the first frame update
void Start()
{
temp = new Vector3[startPos.Length];
for (int i = 0; i < temp.Length; i++)
{
temp[i] = startPos[i].transform.position;
}
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Alpha1))
{
Split();
}
if (Input.GetKeyDown(KeyCode.Alpha3))
{
Merge();
}
}
private void Split()
{
for (int i = 0; i < endPos.Length; i++)
{
MachineInit(startPos[i], endPos[i].transform.position);
}
}
private void Merge()
{
for (int i = 0; i < endPos.Length; i++)
{
MachineInit(startPos[i], temp[i]);
}
}
public void MachineInit(GameObject obj, Vector3 vec)
{
iTween.MoveTo(obj, iTween.Hash(
"position", vec,
"Time", 0.3f,
"easetype", iTween.EaseType.easeInOutQuad,
"space", Space.Self,
"looptype", iTween.LoopType.none
));
}
}