当前位置: 首页 > article >正文

Unity实现连连看连线效果

1.一个比较简单的向量计算,用的LineRenderer实现;

已知起始A点和终点C点,求B点;

先计算A点到C点的向量取归一化当做方向,再给定一个“模长”(B点到A点的模长)乘以该方向,最后加上LineRenderer的自身坐标位置(即A点位置)转换到世界空间;

代码如下:

using System.Collections;
using System.Collections.Generic;
using Unity.Mathematics;
using Unity.VisualScripting;
using UnityEngine;

[ExecuteInEditMode]
public class LineEffects : MonoBehaviour
{
    public  Color LineCol = Color.white;
    public GameObject A;
    public GameObject c;
    public GameObject Line;
    private LineRenderer myLineRenderer;
    [Range(0,0.1f)]public float LineWidth = 0.05f;
    [Range(0,1)]public float MidDistance = 0.25f;

    void Start()
    {
        myLineRenderer = Line.GetComponent<LineRenderer>();
    }

    // Update is called once per frame
    void Update()
    {
        MidLenthMath();


    }

    public void MidLenthMath(){
        myLineRenderer.startWidth = LineWidth;
        myLineRenderer.endWidth = LineWidth;
        //位置
        Vector3 StartPos = A.transform.position - Line.transform.position;
        Vector3 EndPos = c.transform.position - Line.transform.position;

        //向量
        Vector3 X = (c.transform.position - A.transform.position);
        //求中间位置//这个是按照模长求的位置
        X = X.normalized*MidDistance;
        //求解中间B点位置
        Vector3 B = new Vector3(0,0,0);
        B = X + A.transform.position;
        B = new Vector3(B.x,0,B.z);

        myLineRenderer.SetPosition(0,StartPos);
        myLineRenderer.SetPosition(1,B);
        myLineRenderer.SetPosition(2,EndPos);

        Material myLineMat =  myLineRenderer.sharedMaterial;
        myLineMat.SetColor("_UnlitColor",LineCol);

    }
}


http://www.kler.cn/a/593044.html

相关文章:

  • SpringBoot前后端不分离,前端如何解析后端返回html所携带的参数
  • LLM(5):了解 GPT 架构
  • 2024年数维杯数学建模A题多源机会信号建模与导航分析解题全过程论文及程序
  • 合并两个有序数组(js实现,LeetCode:88)
  • 【零基础入门unity游戏开发——unity3D篇】3D模型 —— 3D模型基础介绍
  • 【区块链 + 商贸零售】商小萌小程序 | FISCO BCOS 应用案例
  • python力扣438.找到字符串中所有字母异位词
  • 解决diffusers加载stablediffusion模型,输入prompt总是报错token数超出clip最大长度限制
  • 车载以太网网络测试-16【传输层-UDP】
  • JSON数据格式介绍
  • KUKA机器人信息编程程序
  • LeetCode[124] 二叉树中的最大路径和
  • Blender制作次表面材质
  • AI代理到底怎么玩?
  • IIS 服务器日志和性能监控
  • J2EE实现规范
  • 智慧加油站小程序数据库设计文档
  • K8s集群的环境部署
  • 视频对讲系统中,强插和强拆;视频分发功能
  • 汽车一键启动PKE无钥匙系统