2017-12-18 19 views
0

오류가 액세스하려고 :MissingComponentException : 거기 아니 'SpriteRenderer 없다'는 "엉금 엉금"게임 오브젝트에 부착하지만, 스크립트는 그것을 다음과 같이

MissingComponentException :이를 더 'SpriteRenderer 없다'는 "Gumbaa에 부착 "게임 객체이지만 스크립트가 액세스하려고합니다. SpriteRenderer를 게임 객체 "Gumbaa"에 추가해야 할 것입니다. 또는 스크립트를 사용하기 전에 구성 요소가 첨부되어 있는지 확인해야합니다. UnityEngine.Renderer.get_bounds() (/Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/GraphicsBindings.gen.cs:1007) EnemyMovement.Start() (Assets/Scripts/EnemyMovement.cs에 있음) : 21)

내 게임도 재생 버튼을 클릭 할 때마다 자동으로 멈 춥니 다.

Gumbaa에 'SpriteRenderer'구성 요소를 추가하려고하면 다음과 같은 오류 메시지가 나타납니다. 'SpriteRenderer'를 Koopa Troopa에 추가 할 수 없습니다. 'MeshFilter'파생 된 구성 요소와 충돌합니다.

Screenshot of inspector

using System.Collections; 
using UnityEngine; 

public class EnemyMovement : MonoBehaviour 
{ 
public float speed = 2.7f; 
public LayerMask EnemyMask; 

Transform myTrans; 
float myWidth, myHeight; 
Rigidbody2D rb; 
SpriteRenderer mySprite; 

// Use this for initialization 
void Start() 
{ 
    myTrans = this.transform; 
    rb = this.gameObject.GetComponent<Rigidbody2D>(); 

    mySprite = this.gameObject.GetComponent<SpriteRenderer>(); 
    myWidth = mySprite.bounds.extents.x; 
    myHeight = mySprite.bounds.extents.y; 
} 

// Update is called once per frame 
void FixedUpdate() 
{ 
    Physics2D.IgnoreLayerCollision (8, 9); 
    Vector2 LineCastPos = (myTrans.position.toVector2() +   myTrans.right.toVector2() * myWidth + Vector2.up * myHeight * 1.2f); 

    Debug.DrawLine (LineCastPos, LineCastPos +   myTrans.right.toVector2() * 1.2f); 

    bool isBlocked = Physics2D.Linecast (LineCastPos, LineCastPos +  myTrans.right.toVector2() * 1.2f, EnemyMask); 


    if (isBlocked) 
    { 
     Vector2 currRot = myTrans.eulerAngles; 
     currRot.y += 180; 
     myTrans.eulerAngles = currRot; 
    } 

    Vector2 myVel = rb.velocity; 
    myVel.x = myTrans.right.x * speed ; 
    rb.velocity = myVel; 
} 
} 
+1

에 달려 사용해야 할 경우 알고 SpriteRenderer

를 선택해야합니다. 'EnemyMovement' 스크립트가 첨부 된 동일한 GameObject에 첨부 된 SpriteRenderer가 없습니다. 당신의 장면을 확인하십시오. – Programmer

+0

GameObject는 Gumbaa입니다. 그리고 구성 요소 'SpriteRenderer'을 해당 관리자에 추가하려고 시도했지만 다음 오류 메시지가 나타납니다. 'SpriteRenderer'를 Koopa Troopa에 추가 할 수 없습니다. 기존 'MeshFilter'파생 된 구성 요소와 충돌하기 때문입니다. 검사관의 스크린 샷을 확인할 수 있습니까 –

+0

이 것이 3D (모델) 객체입니까? 그렇다면 2D 용 SpriteRenderer 대신 MeshRenderer를 추가하십시오. 그것이 2D 객체라면, 첨부 된 MeshFilter를 제거하십시오. – Programmer

답변

0

오류가 꽤 분명하다, 스크립트에서 스크립트 EnemyMovement

을 추가

당신의 Gumba 객체에, 당신은

mySprite = this.gameObject.GetComponent<SpriteRenderer>(); 

이렇게가있는 GameObject는 또한 UnityInspector에서

SpriteRenderer이 AddComponent을하고 당신이 정말로 여기에 스프라이트 렌더러는 오류가 모든 것을 말해 당신