Unity Vector3.Slerp使用范例



using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class TestSlerp : MonoBehaviour
{
public Transform a;
public Transform b; void Start()
{ }
bool kaishi = false;
float T;
void Update()
{
if (Input.GetKeyDown(KeyCode.S))
{
kaishi = true;
T = Time.time;
print(Time.time + " SSSSSSSSSSS " + T); }
if (kaishi)
{
Debug.DrawLine(Vector3.zero, new Vector3(, , ), Color.red);
//for (int i=0;i<11;++i)
//{
Vector3 center = (a.position + b.position) * 0.5f;
center -= new Vector3(, , );
Vector3 temp1 = a.position - center;
Vector3 temp2 = b.position - center;
print(Time.time + " " + T);
Vector3 c = Vector3.Slerp(temp1, temp2, (Time.time-T) * 0.1f); c += center;
transform.position = c;
//Debug.DrawRay(center, c, Color.red);
//Debug.DrawRay(Vector3.zero, c, Color.red);
Debug.DrawLine(center, c, Color.blue);
Debug.DrawLine(Vector3.zero, c, Color.blue); // print(i);
}
}
}
最终效果如下:

修改如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class TestSlerp : MonoBehaviour {
public Transform a;
public Transform b;
void Start () { }
void Update () {
Debug.DrawLine(Vector3.zero,new Vector3(,,),Color.red);
for (int i=;i<;++i)
{
Vector3 center = (a.position + b.position) *0.5f;
center -= new Vector3(,,);
Vector3 temp1 =a.position - center;
Vector3 temp2 =b.position - center;
Vector3 c = Vector3.Slerp(temp1, temp2, i * 0.1f);
Debug.DrawLine(center, c, Color.blue);
Debug.DrawLine(Vector3.zero, c, Color.blue);
}
}
}
效果如下:

更多可参考:http://www.manew.com/thread-43314-1-1.html
Unity Vector3.Slerp使用范例的更多相关文章
- Unity球形插值Slerp解析
Unity球形插值,官方有个太阳升降的例子: http://docs.unity3d.com/ScriptReference/Vector3.Slerp.html 一开始主观认为这个球形插值Slerp ...
- 【Unity】6.7 向量和Vector3类
分类:Unity.C#.VS2015 创建日期:2016-04-20 一.简介 在虚拟的游戏世界中,与3D有关的数学知识决定了游戏引擎如何计算和模拟出开发者以及玩家看到的每一帧画面.学习或者回想一下基 ...
- Unity Game窗口中还原Scene窗口摄像机操作 强化版
之前写的那个版本看来真的是不行啊.最近研究了一下官方第一人称脚本,人家的平滑过渡真的是没得说.借鉴了一下,写出来了一个新的比较完美的控制. 之前我们的操作是通过鼠标输入的开始坐标和转动坐标.其实官方有 ...
- C#程序员整理的Unity 3D笔记(十):Unity3D的位移、旋转的3D数学模型
遇到一个想做的功能,但是实现不了,核心原因是因为对U3D的3D数学概念没有灵活吃透.故再次系统学习之—第三次学习3D数学. 本次,希望实现的功能很简单: 如在小地图中,希望可以动态画出Player当前 ...
- Unity 之 c# 版的 CharacterMotor
using System; using System.Collections; using UnityEngine; // This class just convert from Character ...
- Unity 代码 学习
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A: B: using System; using System.Runtime.Compile ...
- Unity API 解析 (陈泉宏著)
1 Application类 2 Camera类 3 GameObject类 4 HideFlags类 5 Mathf类 6 Matrix4x4类 7 Object类 8 Quaternion类 9 ...
- unity 移动物体的方式
1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...
- 关于Unity中的transform组件(三)
game_root节点下右一个Cube子节点,和一个Sphere节点,脚本挂载在game_root下 四元数:(1)Quaternion rot (2)this.cube.rotation 欧拉角:V ...
随机推荐
- 小程序三:视图层之WXML
WXML WXML(WeiXin Markup Language)是MINA设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. [1]数据绑定 1.1 简单绑定 数据绑定使用" ...
- ORACLE经常使用命令
1 怎样查看数据库中都有什么表? select * from sys.user_tables; 2 怎样链接数据库 sqlplus /nolog;conn sys/oracle as sysdba; ...
- 微信小程序的POST和GET请求方式的header区别
1.post请求: wx.request({ url: 'https://m.***.com/index.php/Home/Xiaoxxf/make_order', header: { "C ...
- 【LeetCode】150. Evaluate Reverse Polish Notation
Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Polish No ...
- C# MediaPlayer的详细用法
AxWindowsMediaPlayer的详细用法 作者:龙昊雪 AxWindowsMediaPlayer的详细用法收藏 function StorePage(){d=document;t=d.sel ...
- python学习笔记011——闭包
1 定义 定义:在计算机科学中,闭包是词法闭包的简称,是引用了自由变量的函数 简单地说:闭包就是能够读取其他函数内部变量的函数,闭包是将函数内部和函数外部连接起来的桥梁.——来源百度百科 2 描述 形 ...
- OGG_GoldenGate数据表定义方式DEFGEN(案例)
2014-03-09 Created By BaoXinjian
- VC6.0编译DLL,使用VS2010调用问题及解决方法
1.做驱动的时候.做应用程序须要和驱动通信,必须建立一个DLL. 2.由于客户使用版本号太低,须要使用到VC6.0编写DLL 3.在VC6.0上编写DLL的时候,导出的函数名会出现和原函数名不正确,导 ...
- usb端点(endpoint)知识详解
stsw-stm32121库中: 把数据copy到对应端点的发送缓冲区后,使能发送状态编码STAT_TX=VALID,这时候usb的该端点就可以发送数据了 ----->即先调用usb_sil.c ...
- Dom4j解析和sax解析xml
xml基础知识 1)标签对大小写敏感,2)xml解析方式有两种dom解析和sax解析 3)常用的解析工具有dom的dom4j和sax的sax解析工具 4)文档声明中使用<?xml versio ...