首页 > 其他分享 >通过LineRenderer画线使玩家跟随线条移动

通过LineRenderer画线使玩家跟随线条移动

时间:2023-02-02 09:22:05浏览次数:36  
标签:pos Vector3 画线 transform 玩家 que position airplane LineRenderer

using Cinemachine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CreatLine : MonoBehaviour
{
public CinemachineVirtualCamera cam;
public LineRenderer line;
public GameObject airplane;
public float speed = 1;
Queue<Vector3> que = new Queue<Vector3>();
Vector3 pos;
float time;
float startime;
// Start is called before the first frame update
void Start()
{
pos = airplane.transform.position;//保存飞机坐标初始值
que.Enqueue(airplane.transform.position);//将飞机初始值加入队列
}

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

if (Input.GetMouseButton(0))
{
Vector3 pp = Camera.main.WorldToScreenPoint(airplane.transform.position);//把飞机的世界坐标转成屏幕坐标
Vector3 ppp = new Vector3(Input.mousePosition.x, Input.mousePosition.y, pp.z);//这是一个由鼠标在屏幕上的x,y和飞机在屏幕上z轴的点构成的v3坐标
Vector3 p = Camera.main.ScreenToWorldPoint(ppp);//将这个v3坐标再从新转成世界坐标
que.Enqueue(p);//加入队列 先进先出 从开始的第一个点开始
line.positionCount = que.Count;//lineRenderer的端点数量等于队列长度
line.SetPositions(que.ToArray());//设置端点

}
else if (Input.GetMouseButtonUp(0))
{
PlaneMove();
cam.Priority = 12;
cam.Follow = airplane.transform;
cam.LookAt = airplane.transform;
}
if (pos != airplane.transform.position)//当飞机现在 的位置不等于初始坐标
{
airplane.transform.position = Vector3.Lerp(airplane.transform.position, pos, (Time.time - startime) / time);
line.positionCount = que.Count;
line.SetPositions(que.ToArray());

}
else if (que.Count > 0)//当队列中的端点数大于0将一直执行
{
PlaneMove();
}
}
public void PlaneMove()
{
pos = que.Dequeue();//每执行一次进行一次出队
startime = Time.time;
time = Vector3.Distance(airplane.transform.position, pos) / speed;
}
}

 

标签:pos,Vector3,画线,transform,玩家,que,position,airplane,LineRenderer
From: https://www.cnblogs.com/Chenchen11111/p/17084824.html

相关文章

  • 华硕ROG玩家国度枪神2 plus屏幕校准调色 CMN1747
    我这个版本的枪神2plus的屏幕色域很广,131%sRGB,虽然色彩丰富,但是看起来感觉很费眼,有些动画看多了还头晕,必须得校准显示器+调色  这是老版的屏幕,奇美CMN1747,屏库上面名......
  • 工业互联网2022:第一梯队成型、专精玩家突围
    文|智能相对论作者|沈浪回顾2022年,市场依旧对工业互联网领域保持着高度的热情与专注。近期,IDC、Gartner等各大国际研究机构接连发布多份工业互联网相关报告,包括《2022年度中......
  • 头号玩家!天翼云蝉联专属云服务市场榜首
    1月5日,IDC发布的《中国专属云服务市场(2022上半年)跟踪》报告显示,2022上半年中国专属服务市场整体规模达到121.9亿元人民币,同比增长27.7%。中国电信​​天翼云​​以17.7%的市......
  • 《迷你世界》亿级玩家都在用的游戏场景推荐系统长啥样?
    摘要:通过使用华为云企业级KV数据库GaussDB(forRedis),《迷你世界》的推荐业务不仅成本降低了60%,而且提升了画像数据承载量,让玩家更容易、更快速找到自己喜欢的游戏场景。......
  • 游戏玩家的留存率统计实现
     玩家在某段时间内注册开始游戏,经过一段时间后,仍然继续游戏的被认作是留存;这部分用户占当时新增用户的比例即是留存率,会按照每隔1单位时间(例日、周、月)来进行统计。顾名......
  • 传奇开服教程——总结19条对待玩家的经验!
    ​1、不要开在线活动,特别是GM亲自刷怪的活动这一点是引起很多事故,比如真人PK,GM被骂,还有强烈影响了游戏的公平性,你想拉玩家?错误!你将会感觉到“累死不讨好”、“赔了夫人......
  • 提升游戏玩家体验,华为云CDN加速了解一下
      游戏对网络有着极其严苛的需求,然而,卡顿、延时、加载慢、连服务器都上不去......这些问题的出现常常让很多游戏玩家气愤不已,选择从游戏中“脱坑”。越来越多的游戏厂商也......
  • 「虚拟社交」爆火,资深玩家「当道」
    ⬆️“政企数智办公行业研究报告及融云新品发布会”​一切应用都将社交化。关注【融云全球互联网通信云】回复【融云】抽取高颜值大容量高端可乐保温杯哦~融入社交能力,创造增......
  • 魔兽世界开服架设教程—魔兽国服停服时间已确定!玩家该何去何从
    《魔兽世界》国服停止运营时间定在,2023年1月24日0点起近期随着暴雪和网易公司先后发出的公告,《魔兽世界》国服关服时间已经十分确定了,国服停运时间定在明年的1月24号0点起正......
  • 坦克大战-记录玩家成绩
    预计实现效果实现步骤记录我方击毁敌方坦克数当游戏结束时,将数据写入到文件(IO)当退出时,记录坦克的坐标和方向将每个敌人信息,恢复成Node对象=>vector......