void Start()
 {
     initialGravity = rigidbody2D.gravityScale;
     footLayer      = LayerMask.NameToLayer("foot");
     platformLayer  = LayerMask.NameToLayer("platform");
     animator       = this.GetComponent <CarvalloAnimator>();
     MeleeFired    += animator.Attack1;
 }
示例#2
0
    private IEnumerator RespawnInternal()
    {
        GameObject respawnPlatform = GameObject.Instantiate(respawnPlatformPrefab, transform.position + Vector3.down * 2, transform.rotation) as GameObject;

        invincible = true;
        yield return(new WaitForSeconds(0.1f));

        CarvalloAnimator ca            = GetComponent <CarvalloAnimator>();
        bool             ticktock      = false;
        Vector3          modelLocalPos = ca.model.transform.localPosition;

        for (int i = 0; i < 50; ++i)
        {
            if (ticktock)
            {
                ca.model.transform.position = Camera.main.transform.position + Vector3.back * 10;
            }
            else
            {
                ca.model.transform.localPosition = modelLocalPos;
            }
            yield return(new WaitForSeconds(0.02f));

            ticktock = !ticktock;
        }
        ca.model.transform.localPosition = modelLocalPos;
        invincible = false;
        yield return(new WaitForSeconds(0.5f));

        List <Renderer> platformRenderers = respawnPlatform.GetComponentsInChildren <Renderer>().ToList();

        for (int i = 0; i < 50; ++i)
        {
            yield return(new WaitForSeconds(0.02f));

            foreach (Renderer r in platformRenderers)
            {
                r.enabled = !r.enabled;
            }
        }
        GameObject.Destroy(respawnPlatform);
    }