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 ...
随机推荐
- IDEA删除项目
IDEA没有eclipse的右键直接在磁盘delete整个项目的功能,使用IDEA删除项目需要按照如下步骤: step1:右击项目——>Remove Module 之后会出现提示框如下: 意思是 ...
- HDUOJ----(4706)Children's Day
Children's Day Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- DPDK架构与特点
当年在某公司实习的时候,当时老大给了我一份DPDK的文档,说是将来很有用,熟悉DPDK对能力提高也有帮助,就试着翻译了 <Intel DPDK Getting Started Guide> ...
- 使用Android Ant在编译时混淆
关于ANT 编译和脚本请查看 : http://sinfrancis.javaeye.com/blog/721582 这里使用的是proguard4.4 ,在原有的ANT脚本上加入以下代码: 定义pr ...
- 命名管道FIFO和mkfifo函数
进程间通信必须通过内核提供的通道,而且必须有一种办法在进程中标识内核提供的某个通道,前面讲过的匿名管道是用打开的文件描述符来标识的.如果要互相通信的几个进程没有从公共祖先那里继承文件描述符,它们怎么通 ...
- Linux时间子系统(六) POSIX timer
一.前言 在用户空间接口函数文档中,我们描述了和POSIX timer相关的操作,主要包括创建一个timer.设定timer.获取timer的状态.获取timer overrun的信息.删除timer ...
- Jquery定位插件,固定元素在页面某个位置,不随滚动条滚动
代码: (function ($) { "use strict"; $.fn.pin = function (options) { var scrollY = 0, element ...
- js调用父级frame中的方法
父级frame中的方法: function hideOutline() { $("#outline").hide(); $("#content").attr(& ...
- Android开发16——获取网络资源之基础应用
一.项目背景在Android开发中有一项非常广泛的应用:Android项目获取另一个web项目的资源或者返回的数据.本博文介绍了获取另一个web项目的资源.有一个web项目,在其WebRoot文件夹下 ...
- Angularjs 控制器controller的作用
我们在view中给模型的一个参数name赋值 “hello world” . 这是一种简单的赋值,我们可以在视图中通过 ng 指令(以ng-开头的指令)实现了简单的赋值,如果遇到复杂的逻辑运算操作,那 ...