'float'유형을 'void'로 암시 적으로 변환 할 수 없습니다.

슈퍼 사이언 신 슈퍼 사이언

UnityScript를 C #으로 변환하려고했지만 오류가 발생합니다. 다음은 내 소스 코드입니다.

 GameObject spine;
 private float z = 0;
 private float ySpeed = 13.0f;
 private float zMinLimit = -40.00f;
 private float zMaxLimit = 40.00f;

 void LateUpdate() {
     z -= Input.GetAxis("Mouse Y") * ySpeed;
     z = ClampAngle(z, zMinLimit, zMaxLimit);
     Quaternion rotation_bone = Quaternion.Euler(0, 0, -z);
     spine.transform.localRotation = rotation_bone;
 }

 static void ClampAngle (float angle, float min, float max) {
     if (angle < -360){
         angle += 360;
     }
     if (angle > 360){
         angle -= 360;
     }
     return Mathf.Clamp (angle, min, max);
 } 

컴파일러 오류를 일으키는 줄은 다음과 같습니다.

z = ClampAngle(z, zMinLimit, zMaxLimit);

오류 :

'void'유형을 'float'로 암시 적으로 변환 할 수 없습니다.

두 번째 줄은 두 개의 추가 컴파일러 오류를 발생시킵니다.

return Mathf.Clamp (angle, min, max);

'rotateBones.ClampAngle (float, float, float) : 메서드가 void를 반환 할 때 반환 키워드 뒤에 표현식이 올 수 없습니다.

'float'유형을 'void'로 암시 적으로 변환 할 수 없습니다.

내 코딩 배경에서 float에서 void로, void로 float 오류를 이해하지만 C #에서이 두 가지를 수정하는 방법을 모르겠습니다.

윌 피셔

C #을 사용할 때 void는 값을 반환하지 않는 메서드를 정의하는 데 사용되므로 C # 구문을 준수하기 위해 void의 메서드 유형은 해당 반환 줄을 포함 할 수 없습니다. 그러나 void를 int, bool, float, string 등과 같은 변수 유형 또는 클래스로 변경하면 해당 유형을 반환 할 수 있습니다. 따라서 귀하의 경우에는 float를 반환하는 세 개의 float의 Mathf.Clamp를 반환합니다. 따라서 새 코드는 다음과 같습니다.

public GameObject spine;
private float z = 0;
private float ySpeed = 13.0f;
private float zMinLimit = -40.00f;
private float zMaxLimit = 40.00f;

void LateUpdate() {
    z -= Input.GetAxis("Mouse Y") * ySpeed;
    z = ClampAngle(z, zMinLimit, zMaxLimit);
    Quaternion rotation_bone = Quaternion.Euler(0, 0, -z);
    spine.transform.localRotation = rotation_bone;
}

static float ClampAngle (float angle, float min, float max) {
    if (angle < -360){
        angle += 360;
    }
    if (angle > 360){
        angle -= 360;
    }
    return Mathf.Clamp (angle, min, max);
} 

간단한 수정이지만 C #으로 프로그래밍 할 때 알아야 할 사항입니다.
편집 :
다른 답변의 주석에서 설명한 null 참조 예외는 GameObject 척추가 공개 또는 비공개로 정의되거나 선언되지 않았기 때문입니다. GameObject를 공개하고 인스펙터에서 정의하십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

'bool'유형을 'float'로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

'float'유형을 'int'로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

Unity3d " 'void'유형을 'bool'로 암시 적으로 변환 할 수 없습니다."

분류에서Dev

'void'유형을 'object'asp.net.MVC로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

Math.Pow ()를 사용하여 'double'유형을 'float'로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

2 개의 오류-system.collection.generic.list <float> 유형을 암시 적으로 float로 변환 할 수 없으며 float 유형 []을 float로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

[concrete] 유형을 [interface]로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

암시 적으로 'double'유형을 'int'로 변환 할 수 없습니다.

분류에서Dev

" 'bool []'유형을 'object []'로 암시 적으로 변환 할 수 없습니다."

분류에서Dev

'ulong'유형을 'bool'로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

return 문에 대해 'void'형식을 'System.Collections.Generic.List'로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

customB customC 유형을 암시 적으로 변환 할 수 없습니다.

분류에서Dev

암시 적으로 'system.datetime'유형을 변환 할 수 없습니다.

분류에서Dev

오류는 문자열 파일 경로에서 'void'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

" 'float'개체를 암시 적으로 str로 변환 할 수 없습니다."

분류에서Dev

IQueryable을 암시 적으로 변환 할 수 없습니다.

분류에서Dev

익명 유형 # 1 []을 익명 유형 # 2 []로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

입력 매개 변수가없는 void 형식을 문자열 C #으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

암시 적으로 형식을 int []로 변환 할 수 없습니다.

분류에서Dev

C # 'int'형식을 암시 적으로 변환 할 수 없습니다. 'int'로

분류에서Dev

'IEnumerable <int> 형식을'int '로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

Seek and Flee 행동을 시도합니다. 'void'형식을 'Microsoft.Xna.Framework.Vector2'로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

Unity3D-오류- 'int'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

"CRMFullProject.Lab"유형을 "SmartSecurity.Lab"으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

setter에서 'Address'유형을 'String'으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

2 개의 interger에서 'int'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

'string'유형을 'bool'[If 문]으로 암시 적으로 변환 할 수 없습니다.

분류에서Dev

`UnityEngine.GameObject '유형을 암시 적으로 ScriptName으로 변환 할 수 없습니다.

분류에서Dev

"void"유형을 "x"로 변환 할 수 없습니다.

Related 관련 기사

  1. 1

    'bool'유형을 'float'로 암시 적으로 변환 할 수 없습니다.

  2. 2

    'float'유형을 'int'로 암시 적으로 변환 할 수 없습니다.

  3. 3

    Unity3d " 'void'유형을 'bool'로 암시 적으로 변환 할 수 없습니다."

  4. 4

    'void'유형을 'object'asp.net.MVC로 암시 적으로 변환 할 수 없습니다.

  5. 5

    Math.Pow ()를 사용하여 'double'유형을 'float'로 암시 적으로 변환 할 수 없습니다.

  6. 6

    2 개의 오류-system.collection.generic.list <float> 유형을 암시 적으로 float로 변환 할 수 없으며 float 유형 []을 float로 암시 적으로 변환 할 수 없습니다.

  7. 7

    [concrete] 유형을 [interface]로 암시 적으로 변환 할 수 없습니다.

  8. 8

    암시 적으로 'double'유형을 'int'로 변환 할 수 없습니다.

  9. 9

    " 'bool []'유형을 'object []'로 암시 적으로 변환 할 수 없습니다."

  10. 10

    'ulong'유형을 'bool'로 암시 적으로 변환 할 수 없습니다.

  11. 11

    return 문에 대해 'void'형식을 'System.Collections.Generic.List'로 암시 적으로 변환 할 수 없습니다.

  12. 12

    customB customC 유형을 암시 적으로 변환 할 수 없습니다.

  13. 13

    암시 적으로 'system.datetime'유형을 변환 할 수 없습니다.

  14. 14

    오류는 문자열 파일 경로에서 'void'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

  15. 15

    " 'float'개체를 암시 적으로 str로 변환 할 수 없습니다."

  16. 16

    IQueryable을 암시 적으로 변환 할 수 없습니다.

  17. 17

    익명 유형 # 1 []을 익명 유형 # 2 []로 암시 적으로 변환 할 수 없습니다.

  18. 18

    입력 매개 변수가없는 void 형식을 문자열 C #으로 암시 적으로 변환 할 수 없습니다.

  19. 19

    암시 적으로 형식을 int []로 변환 할 수 없습니다.

  20. 20

    C # 'int'형식을 암시 적으로 변환 할 수 없습니다. 'int'로

  21. 21

    'IEnumerable <int> 형식을'int '로 암시 적으로 변환 할 수 없습니다.

  22. 22

    Seek and Flee 행동을 시도합니다. 'void'형식을 'Microsoft.Xna.Framework.Vector2'로 암시 적으로 변환 할 수 없습니다.

  23. 23

    Unity3D-오류- 'int'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

  24. 24

    "CRMFullProject.Lab"유형을 "SmartSecurity.Lab"으로 암시 적으로 변환 할 수 없습니다.

  25. 25

    setter에서 'Address'유형을 'String'으로 암시 적으로 변환 할 수 없습니다.

  26. 26

    2 개의 interger에서 'int'유형을 'string'으로 암시 적으로 변환 할 수 없습니다.

  27. 27

    'string'유형을 'bool'[If 문]으로 암시 적으로 변환 할 수 없습니다.

  28. 28

    `UnityEngine.GameObject '유형을 암시 적으로 ScriptName으로 변환 할 수 없습니다.

  29. 29

    "void"유형을 "x"로 변환 할 수 없습니다.

뜨겁다태그

보관