您的位置:首页 > 其它

鼠标或者触屏滑动旋转角度查看人物效果(类似王者荣耀里选择人物查看)

2017-12-10 16:20 253 查看
一:NGUI特有的 滑动鼠标观察对象(直接添加)
1在角色身上添加碰撞盒   Inspector--Add component-- 搜索“ capsule collider”添加 

2为角色加脚本     [b]Inspector--Add component--查找 “Spin with Mouse”即可  [/b]

(注意角色要放在NGUI的UI Root下面;层级要都为UI层)

二:通过代码实现

1在角色身上添加碰撞盒   Inspector--Add

2创建C#脚本 ,然后将脚本绑定在要观察的对象Object身上   --如下

(转载)
using UnityEngine;
using System.Collections;

public class ViewHero : MonoBehaviour {

//是否被拖拽
private bool onDrag = false;
//旋转速度
public float speed = 6f;
//阻尼速度
private float zSpeed;
//鼠标沿水平方向拖拽的增量
private float X;
//鼠标沿竖直方向拖拽的增量
//private float Y;
//鼠标移动的距离
private float mXY;

//接受鼠标按下的事件
void OnMouseDown()
{
X = 0f;
//Y = 0f;
}

//鼠标拖拽时的操作
void OnMouseDrag()
{
Debug.Log("鼠标拖拽");
onDrag = true;
X = -Input.GetAxis("Mouse X");
//获得鼠标增量
//Y = Input.GetAxis ("Mouse Y");
//mXY = Mathf.Sqrt (X * X + Y * Y);
//计算鼠标移动的长度
// if(mXY == 0f){ mXY=1f; } }

//计算鼠标移动的长度//
mXY = Mathf.Sqrt(X * X);
if (mXY == 0f)
{
mXY = 1f;
}
}

//获取阻尼速度
float RiSpeed()
{
if (onDrag)
{
zSpeed = speed;
}
else
{
//if (zSpeed> 0)
//{
//通过除以鼠标移动长度实现拖拽越长速度减缓越慢
// zSpeed -= speed*2 * Time.deltaTime / mXY;
//}
//else
//{
zSpeed = 0;
//}
}
4000

return zSpeed;
}

void LateUpdate()
{
transform.Rotate(new Vector3(0, X, 0) * RiSpeed(), Space.World);
if (!Input.GetMouseButtonDown(0))
{
print("鼠标事件:"+!Input.GetMouseButtonDown(0));
onDrag = false;
}
}
}


component-- 搜索“ capsule collider”添加 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: