本文由RoadLun原创,转载请声明

效果如图,向加了弹簧效果的墙发射一个Cube,墙先被压缩,后回弹,回弹幅度越来越小
原理:
当弹簧被压缩或拉伸时,就会受到弹力,所以每帧判断受力点应该收到的弹力。
代码如下():
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpringCon : MonoBehaviour {
//弹簧控制
//弹簧被压缩的程度越大,弹性越大
Vector3 fixPos;
public float elasticValue=3f; //弹性系数
Vector3 forceDie; //力量的方向
Rigidbody rig;
private void Start()
{
fixPos = transform.position;
rig = GetComponent<Rigidbody>();
}
private void Update()
{
Elastic();
}
void Elastic()
{
if (rig.velocity==Vector3.zero) return;
rig.AddForce((fixPos - transform.position) * elasticValue*Time.deltaTime);
}
}