简体   繁体   中英

Got 2 errors with 'start' and 'update' error CS0111: Type 'Enemy' already defines a member called 'Start' with the same parameter types how can i fix?

Got 2 errors from 1 script and dont know whats happening. If anyone can help that would be great. Error is in the title and the other one is the same except instead of 'Start' its 'Update'

Thanks for reading

using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float health = 50f;
    private Rigidbody rb;
    
    // Start is called before the first frame update
    void Start()
    {
        rb = this.GetComponent<Rigidbody>();
    }
    
    // Update is called once per frame
    void Update()
    {
        Vector3 direction = player.position - transform.position;
        float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
        float y = Quaternion.identity.eulerAngles.y;
        float z = Quaternion.identity.eulerAngles.z;
        rb.rotation = Quaternion.Euler(angle, y, z);
    }
}

Using the override operator should get rid of the compiler errors, but I'm not a Unity dev so I'm not sure if Unity will treat your class in the correct way. Here's how you would do it:

    override void Start()
    {
    ...
    }
    
    // Update is called once per frame
    override void Update()
    {
    ...
    }

You can read more about the override operator here: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/override

I also found this article and it declares Start as an IEnumerator rather than a void so that may fix it too.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM