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

功能型企业网站有哪些关联词有哪些五年级

功能型企业网站有哪些,关联词有哪些五年级,重庆网站建设公司咨询亿企帮,西宁建站物体坐标与物体移动 世界坐标与局部坐标之间的转换物体移动至指定位置需求思路注意 世界坐标与局部坐标之间的转换 在Unity中,物体的坐标分为局部坐标和世界坐标。 局部坐标是相对于物体的父对象的坐标系,而世界坐标是相对于场景的整体坐标系。 使用tr…

物体坐标与物体移动

  • 世界坐标与局部坐标之间的转换
  • 物体移动至指定位置
    • 需求
    • 思路
    • 注意

世界坐标与局部坐标之间的转换

在Unity中,物体的坐标分为局部坐标世界坐标
局部坐标是相对于物体的父对象的坐标系,而世界坐标是相对于场景的整体坐标系。

使用transform.position属性来获取物体在世界坐标系下的坐标。
使用transform.localPosition属性来获取物体在世界坐标系下的坐标。
使用transform.TransformPoint将局部坐标系转换为世界坐标系。
使用transform.InverseTransformPoint世界坐标系转换为局部坐标系。

举个例子
在这里插入图片描述

在这里插入图片描述
将下面代码挂载到Sphere上

public class Coordinate : MonoBehaviour
{public GameObject SomeThing;public Vector3 SomePoint;void Start(){Debug.Log("世界坐标:" + transform.position);Debug.Log("局部坐标:" + transform.localPosition);Debug.Log("当前坐标:" + SomePoint);Vector3 worldPoint = transform.TransformPoint(SomePoint);Debug.Log("局部坐标转为世界坐标:" + worldPoint);Vector3 localPoint = transform.InverseTransformPoint(worldPoint);Debug.Log("世界坐标转为局部坐标:" + localPoint);}
}

输出结果如下
在这里插入图片描述

如果想让物体运动到指定的位置,通常情况下是参考世界坐标系。因为世界坐标系是整个场景的坐标系,而局部坐标系是相对于物体的父对象的坐标系。假设想让物体移动到坐标为(x,y,z)的位置,参照世界坐标与局部坐标的物体运动代码如下:

// 世界坐标下运动
transform.position = new Vector3(x, y, z);
// 局部坐标下运动
transform.localPosition = new Vector3(x, y, z);

如果想要实现多个物体以相同的速度按照顺序移动到不同的位置,可以参考下一节。

物体移动至指定位置

需求

将一个由多个零部件组成的自定义模型导入unity中,希望实现该模型的部分拆卸过程。下面以共有11个拆卸步骤为例

思路

在网上找了很多资料,目前想到的办法有利用协程或动画播放的方法(这里只做了协程的方法,动画的等我学会再加上)
1、首先是自定义的模型的拆卸,因此需要知道哪些零部件需要先拆,哪些后拆。
2、还需要考虑碰撞等干涉情况,因此下面代码中有的零部件出现了多次。
3、将所有需要拆卸的零部件创建一个空父对象,下面这个代码就挂载到空父对象上。
4、利用GameObject.Find()函数,找到每个零部件,并放在一个数组里面,便于后续对每个零部件进行操作。
5、将每个零部件需要移动的指定位置与运动时间,同样放在另外两个数组里面。
6、零部件的移动,我使用的是DOTween插件中的DOLocalMove方法。

DOTween插件解析

注意

下面代码有待完善,如“每一步拆卸步骤所有的时间是不一样的,但速度应该是一样,这个我目前还不知道如何解决,只知道运动的位移相同的零件,其运动速度是一样的”
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;public class MoveTogether : MonoBehaviour
{//物体数组public GameObject[] objects;//物体名称数组public string[] Names;//目标位置数组public Vector3[] targetPositions;//运动时间数组public float[] moveTime;void Start(){Names = new string[]{ "一移动螺丝", "一移动螺丝", "中间部分", "铁片1螺丝","铁片1","铁片2螺丝","铁片2","铁片3螺丝","铁片3","整体下方", "整体下方" };objects = new GameObject[Names.Length];for (int i = 0; i < Names.Length; i++){objects[i] = GameObject.Find(Names[i]);}targetPositions = new Vector3[] { new Vector3(0f, 0f, -0.5f),  //一移动螺丝向下new Vector3(3f, 0f, -0.5f),  //一移动螺丝向右new Vector3(0f, 0f, -0.8f), //中间部分向下new Vector3(3f, 0f, 0f),    //铁片1螺丝向外new Vector3(3f, 0f, 0f),    //铁片1向外new Vector3(0f, -2f, 0f),  //铁片2螺丝向外new Vector3(0f, -2f, 0f),  //铁片2向外new Vector3(-3f, 0f, 0f),  //铁片3螺丝向外new Vector3(-3f, 0f, 0f),  //铁片3向外new Vector3(0f, 0f, -0.3f),  //整体下方向下new Vector3(3f, 0f, -0.3f) }; //整体下方向右moveTime = new float[] { 1f,3f,2f,2f,2f,2f,2f,2f,2f,2f,3f };StartCoroutine(Spilt_Merge());}IEnumerator Spilt_Merge(){//StepA.transform.DOLocalMove(targetStepA1, moveSpeed).SetEase(Ease.Linear);for (int i = 0; i < objects.Length; i++){if (i > 0){yield return objects[i - 1].transform.DOLocalMove(targetPositions[i - 1], moveTime[i - 1]).WaitForCompletion();}yield return objects[i].transform.DOLocalMove(targetPositions[i], moveTime[i]).WaitForCompletion();}      }
}
http://www.zhongyajixie.com/news/2956.html

相关文章:

  • tp做的网站封装成app娄底地seo
  • 临漳企业做网站推广软文技巧
  • 自学做动态网站bt种子搜索
  • 网站页头页尾怎么做浏览器缓冲设置网络产品及其推广方法
  • 微信网站怎么建立网上电商怎么做
  • 安康免费做网站深圳网络推广培训学校
  • 淘宝客网站主营销渠道策略有哪些
  • b2b网站产品群发工具如何免费推广网站
  • php 跳转到其他网站手机app推广平台
  • 做pop网站如何在手机上制作网站
  • 企业网站建设对企业客户的意义品牌公关具体要做些什么
  • 做网站设计有哪些网页网络工程师培训机构排名
  • 网站开发开题报告关键问题武汉网站推广优化
  • 怎么给自己喜欢的人做网站seo优化教程培训
  • 59网一起做网站站长工具收录查询
  • mysql 注册网站培训心得
  • 南昌政府网站建设uc搜索引擎入口
  • 电商网站费用百度网址
  • 网站建站建设工作总结如何增加网站的外链
  • 东至网站制作网站宣传文案范例
  • 网站建设灯上海网络推广渠道
  • 建筑企业网站seo营销网站
  • 可以接项目做的网站外贸接单平台网站
  • 旅游网站建设策划方案seo 什么意思
  • bootstrap商城模板深圳外包seo
  • 设计网站推荐室内关键词权重
  • 海城网站制作建设百度商家平台客服电话
  • 政协网站建设情况汇报线下推广的渠道和方法
  • 律师网站专业设计南沙seo培训
  • 新网站提交百度收录营销技巧和营销方法培训