【游戏技术群】959392658  【游戏出海群】12067810
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:568

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 878|回复: 4

[脚本] 关于character第一人称控制器的相机位置控制问题

[复制链接]  [移动端链接]
排名
24882
昨日变化
11

5

主题

8

帖子

52

积分

Rank: 2Rank: 2

UID
257536
好友
0
蛮牛币
58
威望
0
注册时间
2017-12-3
在线时间
23 小时
最后登录
2018-7-20
发表于 2018-2-3 16:36:13 | 显示全部楼层 |阅读模式
5蛮牛币
如图可以看到我第一人称相机的位置相对于人物脑袋是有点偏后,导致相机捕捉到了人物脑袋的画面。
我把相机的z轴位置改为0.09这个是正常的,但是运行游戏后相机位置z轴自动变为0,y轴为不可调整的状态。。第一次用这个unity自带的character包里的first person controller脚本,不是很熟,自己改的时候出现各种错误,还请各位指教下。
360截图16490202119105150.png
360截图16190824384573.png
360截图16690801848862.png

回复

使用道具 举报

5熟悉之中
774/1000
排名
5540
昨日变化
1

10

主题

184

帖子

774

积分

Rank: 5Rank: 5

UID
246388
好友
0
蛮牛币
253
威望
0
注册时间
2017-9-27
在线时间
302 小时
最后登录
2018-8-11
发表于 2018-2-3 16:36:14 | 显示全部楼层
··· ···呀,不给蛮牛币啊。
我又回来了,又看了一遍,你是想问那个位置为什么会还原是么。

第一人称角色控制器相机上有个HeadBob的脚本对么,打开脚本能够看到
public CurveControlledBob motionBob = new CurveControlledBob();
看到上面那个CurveControlledBob类了么,选中那个类,按F12
能看到这个
public Vector3 DoHeadBob(float speed)
        {
            float xPos = m_OriginalCameraPosition.x + (Bobcurve.Evaluate(m_CyclePositionX)*HorizontalBobRange);
            float yPos = m_OriginalCameraPosition.y + (Bobcurve.Evaluate(m_CyclePositionY)*VerticalBobRange);

            m_CyclePositionX += (speed*Time.deltaTime)/m_BobBaseInterval;
            m_CyclePositionY += ((speed*Time.deltaTime)/m_BobBaseInterval)*VerticaltoHorizontalRatio;

            if (m_CyclePositionX > m_Time)
            {
                m_CyclePositionX = m_CyclePositionX - m_Time;
            }
            if (m_CyclePositionY > m_Time)
            {
                m_CyclePositionY = m_CyclePositionY - m_Time;
            }

            return new Vector3(xPos, yPos, 0f);
        }
把return new Vector3(xPos, yPos, 0f);里的0f换成你想要的0.09f就可以了
蛮牛币

回复

使用道具 举报

5熟悉之中
774/1000
排名
5540
昨日变化
1

10

主题

184

帖子

774

积分

Rank: 5Rank: 5

UID
246388
好友
0
蛮牛币
253
威望
0
注册时间
2017-9-27
在线时间
302 小时
最后登录
2018-8-11
发表于 2018-2-5 08:48:07 | 显示全部楼层
在你第二张图里,相机属性下,看到一个叫clipping planes了么。有个near和far,near就是能渲染的最小距离,调大点儿

回复

使用道具 举报

5熟悉之中
543/1000
排名
4715
昨日变化
1

1

主题

37

帖子

543

积分

Rank: 5Rank: 5

UID
264429
好友
0
蛮牛币
884
威望
0
注册时间
2018-1-15
在线时间
207 小时
最后登录
2018-12-19
发表于 2018-2-5 15:43:11 | 显示全部楼层
可以用两个相机,一个专门用来渲染枪,把相机改成depthonly,这样不会出现枪一截进去了墙里这种古怪情况。然后就是主相机的near改成0.01

回复

使用道具 举报

5熟悉之中
774/1000
排名
5540
昨日变化
1

10

主题

184

帖子

774

积分

Rank: 5Rank: 5

UID
246388
好友
0
蛮牛币
253
威望
0
注册时间
2017-9-27
在线时间
302 小时
最后登录
2018-8-11
发表于 2018-2-5 15:54:51 | 显示全部楼层
dzxstudent 发表于 2018-2-5 15:43
可以用两个相机,一个专门用来渲染枪,把相机改成depthonly,这样不会出现枪一截进去了墙里这种古怪情况。 ...

near改成0.01,呵呵哒

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表