更改FirstPersonController MouseLook灵敏度

时间:2017-04-26 01:53:22

标签: c# unity3d unityscript

我是一个绝对的初学者。我目前正在用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下拉列表中的引用,以便我可以更改灵敏度?谢谢!

1 个答案:

答案 0 :(得分:2)

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

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;
}