您的位置:首页 > 房产 > 建筑 > 洛阳又发现一例_销客多分销小程序价格_合肥seo优化外包公司_昆明做网站的公司

洛阳又发现一例_销客多分销小程序价格_合肥seo优化外包公司_昆明做网站的公司

2024/12/27 16:01:50 来源:https://blog.csdn.net/qq_41603955/article/details/144292309  浏览:    关键词:洛阳又发现一例_销客多分销小程序价格_合肥seo优化外包公司_昆明做网站的公司
洛阳又发现一例_销客多分销小程序价格_合肥seo优化外包公司_昆明做网站的公司

效果展示:

 实现如下:

首先,直接上代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class LineFourRender : MonoBehaviour
{public Transform StartNode;public Transform MidNode1;public Transform MidNode2;public Transform EndNode;public int vertexCount = 10;LineRenderer lineRen;private void Start(){lineRen = GetComponent<LineRenderer>();}private void Update(){List<Vector3> pointList = new List<Vector3>();for (float ratio = 0; ratio <= 1; ratio += 1.0f / vertexCount){if (lineRen.useWorldSpace){Vector3 tangentLineVertex1 = Vector3.Lerp(StartNode.position, MidNode1.position, ratio);Vector3 tangentLineVectex2 = Vector3.Lerp(MidNode1.position, MidNode2.position, ratio);Vector3 tangentLineVectex3 = Vector3.Lerp(MidNode2.position, EndNode.position, ratio);Vector3 bezierPoint1 = Vector3.Lerp(tangentLineVertex1, tangentLineVectex2, ratio);Vector3 bezierPoint2 = Vector3.Lerp(tangentLineVectex2, tangentLineVectex3, ratio);Vector3 bezierPoint = Vector3.Lerp(bezierPoint1, bezierPoint2, ratio);pointList.Add(bezierPoint);}else{Vector3 tangentLineVertex1 = Vector3.Lerp(StartNode.localPosition, MidNode1.localPosition, ratio);Vector3 tangentLineVectex2 = Vector3.Lerp(MidNode1.localPosition, MidNode2.localPosition, ratio);Vector3 tangentLineVectex3 = Vector3.Lerp(MidNode2.localPosition, EndNode.localPosition, ratio);Vector3 bezierPoint1 = Vector3.Lerp(tangentLineVertex1, tangentLineVectex2, ratio);Vector3 bezierPoint2 = Vector3.Lerp(tangentLineVectex2, tangentLineVectex3, ratio);Vector3 bezierPoint = Vector3.Lerp(bezierPoint1, bezierPoint2, ratio);pointList.Add(bezierPoint);}}if (lineRen.useWorldSpace){pointList.Add(EndNode.position);}else{pointList.Add(EndNode.localPosition);}lineRen.positionCount = pointList.Count;lineRen.SetPositions(pointList.ToArray());// Draw(StartNode.position,EndNode.position,GetComponent<MeshRenderer>(),0.015).transform.SetParent(this.transform);}}

接下来,把LineFourRender.cs拖拽上去:

注意:VertexCount参数决定了绳子的丝滑程度,该值越大,绳子越丝滑。

最后是对LineRenderer组件和绳子材质的调整:

附一张绳子贴图:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com