U3D 编脚本傍边的 减号怎么打来的

U3D制作脚本对象_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
14页免费7页免费4页1下载券4页1下载券2页3下载券 2页2下载券2页1下载券4页1下载券17页7下载券3页1下载券
喜欢此文档的还喜欢454页1下载券6页免费2页1下载券2页免费7页1下载券
U3D制作脚本对象|U​n​i​t​yD​学​习​记​录
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:2.51KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢QQ群:①群 ③群 ④群 ⑥群
扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
Unity3D相机跟随脚本
热度 41209
|个人分类:|
这个脚本应该已经有很多人提供了吧。我在这里把他粘贴出来是为了下面的攻击提供相机移动的支持。呵呵呵呵。。其实对于四元数我也有些地方没有搞明白。。这个脚本是跟随游戏中以Player为标签的游戏对象,使用时,记得为你所跟随的对象添加Player标签奥[code]csharpcode:using UnityE
using System.C
/// &summary&
/// 摄像机跟随player的控制器
/// &/summary&
public class MouseOrbit : MonoBehaviour {
#region =====公共变量
/// &summary&
/// &/summary&
[HideInInspector]
public GameObject m_
/// &summary&
/// X轴方向的速度
/// &/summary&
public float m_xSpeed=8;
/// &summary&
/// Y轴方向的速度
/// &/summary&
public float m_ySpeed=4;
/// &summary&
/// 鼠标Y轴方向旋转的最小值
/// &/summary&
public float m_yMinLimit=10;
/// &summary&
/// 鼠标Y轴方向旋转的最大值
/// &/summary&
public float m_yMaxLimit=50;
/// &summary&
/// 滚轮的速度
/// &/summary&
public float m_scrollSpeed=20;
/// &summary&
/// 放大的最小值
/// &/summary&
public float m_zoomMin=4;
/// &summary&
/// 放大的最大值
/// &/summary&
public float m_zoomMax=10;
#endregion
#region=====私有变量
/// &summary&
/// 相机与目标的距离
/// &/summary&
private float _
private float _distanceL
private Vector3 _
/// &summary&
/// 是否对摄像机进行旋转
/// &/summary&
private bool _isA
/// &summary&
/// (鼠标的左右滑动(X轴方向))=相机在y轴的旋转角度
/// &/summary&
private float _x;
/// &summary&
/// (鼠标的上下滑动(Y轴方向))=相机x轴的旋转角度
/// &/summary&
private float _y;
private bool _setupC
private Transform myT
#endregion
void Start()
myTransform =
//当不能发现目标时,发出警告
if (m_target == null)
m_target = GameObject.FindGameObjectWithTag("Player");
if (m_target == null)
Debug.LogWarning("不能找到目标,请给Player添加一个Player的标签");
//设置坐标
Vector3 angles = myTransform.eulerA
_x = angles.y;
_y = angles.x;
CalculateDistance();
void LateUpdate()
ScrollMouse();
RotateCamera();
#region 根据距离,放大目标
/// &summary&
/// 根据距离,放大目标
/// &/summary&
private void CalculateDistance()
if (m_target != null)
_distance = m_zoomM
_distanceLerp = _
//构建相机旋转的四元数
Quaternion rotation = Quaternion.Euler(_y, _x, 0);
//构建相机的原点坐标(因为四元数的旋转通常是以原点进行旋转的)
Vector3 calPosition = new Vector3(0, 0, -_distanceLerp);
//对于相机进行旋转,跟踪目标的坐标
_position = rotation * calPosition + m_target.transform.
//重新定位相机的旋转角
myTransform.rotation =
//重新定位相机的坐标
myTransform.position = _
Debug.LogWarning("不能找到目标,请给Player添加一个Player的标签");
#endregion
/// &summary&
/// 鼠标滚轮的方法
/// &/summary&
private void ScrollMouse()
_distanceLerp = Mathf.Lerp(_distanceLerp, _distance, Time.deltaTime * 5);
if (Input.GetAxis("Mouse ScrollWheel") != 0)
_distance = Vector3.Distance(myTransform.position, m_target.transform.position);
_distance = ScrollLimit(_distance - Input.GetAxis("Mouse ScrollWheel") * m_scrollSpeed, m_zoomMin, m_zoomMax);
/// &summary&
/// 放大缩小取值
/// &/summary&
/// &param name="dist"&目标值&/param&
/// &param name="min"&最小值&/param&
/// &param name="max"&最大值&/param&
private float ScrollLimit(float dist, float min, float max)
if (dist & min)
if (dist & max)
/// &summary&
/// 旋转摄像机
/// &/summary&
private void RotateCamera()
//鼠标右键按下
if (Input.GetMouseButtonDown(1))
_isActivated =
//鼠标右键弹起
if (Input.GetMouseButtonUp(1))
_isActivated =
//如果鼠标右键按下并且目标不为空
if (m_target && _isActivated)
_y -= Input.GetAxis("Mouse Y") * m_yS
_x += Input.GetAxis("Mouse X") * m_xS
_y = ClampAngle(_y, m_yMinLimit, m_yMaxLimit);
Quaternion rotation = Quaternion.Euler(_y, _x, 0);
Vector3 calPos = new Vector3(0, 0, -_distanceLerp);
_position = rotation * calPos + m_target.transform.
transform.rotation =
transform.position = _
Quaternion rotation = Quaternion.Euler(_y, _x, 0);
Vector3 calPos = new Vector3(0, 0, -_distanceLerp);
_position = rotation * calPos + m_target.transform.
transform.rotation =
transform.position = _
/// &summary&
/// 夹角的方法
/// &/summary&
/// &param name="angle"&角度&/param&
/// &param name="min"&最小的角度&/param&
/// &param name="max"&最大的角度&/param&
private float ClampAngle(float angle, float min, float max)
if (angle & -360)
angle += 360;
if (angle & 360)
angle -= 360;
return Mathf.Clamp(angle, min, max);
刚表态过的朋友 ()
作者的其他最新博客
评论 ( 个评论)
6522121110
【游戏蛮牛杯】第三届开发者大赛拉开序幕U3D开门的脚本_百度知道
U3D开门的脚本
求一个脚本 在U3D中 如何写个脚本
按“E&键时可以打开门的或者将门旋转90度,再次按E键还原门的初始状态,说白了就是按E键开关门
提问者采纳
这种问题还来问,自己研究研究不得了。第一步在project setting 的input里加入一个E键的输入命令,在update方法里加上if(input.getbutton(&kaimen&)){开门 或者 关门} 门的旋转首先在3d软件里设好了重心在门的一侧不是在中间,用transform.rotate(), 或者直接改变transform 的eulerangle值开门。具体细节再看下官网上给的例子自己研究研究吧
提问者评价
谢谢 我是一点都不懂,语法都不知道什么意思,一个临时的项目所以才来问的,
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
阅读(144)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_082067',
blogTitle:' JS正则表达式详解',
blogAbstract:'\r\n\r\n开篇,还是得说说 ^&和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明 \r\n\"^The\": 开头一定要有\"The\"字符串; \r\n\"of despair$\":&&& 结尾一定要有\"of despair\" 的字符串; \r\n\r\n那么,\r\n\"^abc$\": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配 \r\n\"notice\": 匹配包含notice的字符串 \r\n\r\n你可以看见如果你没有用我们提到的两个字符(最后一个例子),就是说 模式(正则表达式) 可以出现在被检验字符串的任何地方,你没有把他锁定到两边 ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 括号前面是减号 的文章

 

随机推荐