2017-04-26 1 views
2

전적으로 초보자입니다. 저는 현재 자바 스크립트와 함께 아래로 목표 명소 스크립트를 만드는 중이라서, 그리고 목표로 할 때 나는이FirstPersonController 변경하기 MouseLook 감도

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

를 사용하여 시도 x와 y 모두에 대한 감도가 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에서 마우스 봐 드롭 다운 그래서 난 감도를 변경할 수 있습니다 참조에 액세스하는 방법을 알고 있나요? 감사!

+1

당신이 오류를받을 수 있나요? * "작동하지 않습니다"*라는 의미는 무엇입니까? – Programmer

+0

@Programmer OP – Orion31

답변

1

우선, C#은 Javascript보다 많은 기능을 가지고 있으므로 최대한 빨리 사용해야합니다. 또한 Unityscript보다 C#에 대한 더 많은 도움을 얻을 수 있습니다. 마지막으로, Unityscript가 미래에 중단 될 확률이 높으므로 이제 결정을 내리십시오. Unity here에 대한 C# 튜토리얼을 찾을 수 있습니다.

MouseLook 스크립트는 FirstPersonController 스크립트에 노출되어 있지 않습니다.

MouseLook가 표시됩니다. 자산/표준 자산/문자/FirstPersonCharacter/스크립트 디렉토리에서 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/자바 스크립트 :

#pragma strict 
import UnityStandardAssets.Characters.FirstPerson; 

var fps:FirstPersonController; 

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

매우 좋은 답변을 편집했습니다! 나는 이번 주에 Unity를 시작했고, 이미 Javascript를 알고 있기 때문에 현재 사용 중입니다. C#을 배울 계획이 있지만 새 언어로 뛰어 들기 전에 Unity의 느낌을 배우고 싶습니다. – Orion31