更改 FirstPersonController MouseLook 灵敏度

Posted

技术标签:

【中文标题】更改 FirstPersonController MouseLook 灵敏度【英文标题】:Changing FirstPersonController MouseLook sensitivity 【发布时间】:2017-09-23 05:42:19 【问题描述】:

我是一个绝对的初学者。我目前正在使用 javascript 制作瞄准脚本,并且在瞄准时我希望 x 和 y 的灵敏度都降至 2。我尝试使用

GetComponent.<UnityStandardAssets.Characters.FirstPerson.MouseLook>().sensitivityX = 2;

但这不起作用。该行的错误是

NullReferenceException: Object reference not set to an instance of an object
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.SetProperty (System.Object target, System.String name, System.Object value)
AimDownSights.Update () (at Assets/AimDownSights.js:33)

有谁知道如何访问 FPSController 中的 Mouse Look 下拉列表,以便我可以更改灵敏度?谢谢!

【问题讨论】:

你有什么错误吗? “它不起作用”是什么意思? @Programmer 我编辑了 OP 【参考方案1】:

首先,您应该尽快使用C#,因为它比Javascript 有更多的功能。此外,您将在 C# 方面获得比 Unityscript 更多的帮助。最后,Unityscript 未来被停用的可能性很高,所以现在就做出决定。你可以找到 Unity 的 C# 教程here。

MouseLook 脚本没有暴露在FirstPersonController 脚本中。

我们将公开MouseLook。从 Assets/Standard Assets/Characters/FirstPersonCharacter/Scripts 目录打开 FirstPersonController.cs 脚本并将以下脚本添加到其中:

public MouseLook mouseLookCustom

    get  return m_MouseLook; 

就是这样。我们现在已经暴露了MouseLook 实例。


修改鼠标的东西:

C#:

using UnityStandardAssets.Characters.FirstPerson;

public class Fpstest : MonoBehaviour

    FirstPersonController fps;

    // Use this for initialization
    void Start()
    
        GameObject fpObj = GameObject.Find("FPSController");
        fps = fpObj.GetComponent<FirstPersonController>();
        fps.mouseLookCustom.XSensitivity = 5;
    

Unityscript/Javascript

#pragma strict
import UnityStandardAssets.Characters.FirstPerson;

var fps:FirstPersonController;

function Start () 
    var fpObj = GameObject.Find("FPSController");
    fps = GetComponent.<FirstPersonController>();
    fps.mouseLookCustom.XSensitivity = 5;

【讨论】:

很好的答案!我这周开始使用 Unity,因为我已经知道 Javascript,所以我目前正在使用。我有学习 C# 的计划,但我想在深入了解一门新语言之前先了解一下 Unity 的感觉

以上是关于更改 FirstPersonController MouseLook 灵敏度的主要内容,如果未能解决你的问题,请参考以下文章

HAC 集群更改 IP(单节点更改全部节点更改)

更改fancybox iframe的大小-我可以更改宽度但不能更改高度?

在运行时更改方向更改 ViewControllers

UIScrollView 更改 contentOffset 时更改框架

HAC集群更改IP(单节点更改全部节点更改)

HAC集群更改IP(单节点更改全部节点更改)