c# - 更改 FirstPersonController MouseLook 灵敏度

标签 c# unity-game-engine

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

最佳答案

首先,您应该尽快使用C#,因为它比 Javascript 具有更多功能。此外,与 Unityscript 相比,您将获得更多关于 C# 的帮助。最后,Unityscript future 被终止的可能性很高,所以现在就做出决定。您可以找到 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;
}

关于c# - 更改 FirstPersonController MouseLook 灵敏度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43623712/

相关文章:

unity-game-engine - 使用 socket.io 的 Unity 多人游戏(android 和 ios)

c# - 以多行而不是一长行显示 JSON 文件的内容

c# - 如何将后台工作线程设置为单线程单元?

c# - Visual Studio - DDD 模块和洋葱

c# - 无法加载 DLL "OraOps10.dll"

unity-game-engine - 对象的删除按钮 - MRTK

c# - Unity 中出现此错误 "Download over http ,please consider updating to https"的任何永久解决方案?

android - 将 Unity 应用程序添加到新的结构组织、现有的 firebase 项目

c# - 在 ComboBox (WPF) 中禁用鼠标悬停滚动

c# - 串行通信不通过 QSerialPort (Qt) 工作,但通过终端 (Termite) 工作