コード例 #1
0
ファイル: DragonAIScript.cs プロジェクト: loserboi23/Pacify
    IEnumerator DragonMovement(int random, Vector3 target_offset, DirectionScript.GameObjectDirection new_dir)
    {
        for (int r = 0; r < random; r++)
        {
            UpdatePositionList(target_offset);
            DirectionScript GOD;

            for (int i = 0; i < dragonlist.Count; i++)
            {
                dragonlist[i].transform.position = Vector3.MoveTowards(dragonlist[i].transform.position, newpositions[i], 1f);

                yield return(null);

                if (r == 0)
                {
                    GOD = dragonlist[i].GetComponent <DirectionScript>();
                    //turn the dragonhead and make a curve

                    if (i == 0)
                    {
                        UpdateCloneList();
                        GOD.DragonSingleDirection(Sprite_dragon_head, new_dir);
                    }
                    else if (i == 1)
                    {
                        GOD.DragonCurveDirection(Sprite_dragoncurve, Sprite_dragoncurve_1, new_dir);
                    }
                    else if (i == dragonlist.Count - 1)
                    {
                        GOD.InheritDirectionandRotation(Sprite_dragontail, scaleclone[i - 1], eulerclone[i - 1], directionclone[i - 1]);
                    }
                    else
                    {
                        GOD.InheritDirectionandRotation(spriteclone[i - 1], scaleclone[i - 1], eulerclone[i - 1], directionclone[i - 1]);
                    }
                }
                else
                {
                    GOD = dragonlist[i].GetComponent <DirectionScript>();
                    if (i == 0)
                    {
                        GOD.DragonSingleDirection(Sprite_dragon_head, new_dir);
                    }
                    else if (i == 1)
                    {
                        UpdateCloneList();
                        GOD.DragonSingleDirection(Sprite_dragonbody, new_dir);
                    }
                    else if (i == dragonlist.Count - 1)
                    {
                        GOD.DragonSingleDirection(Sprite_dragontail, directionclone[i - 1]);
                    }
                    else
                    {
                        GOD.InheritDirectionandRotation(spriteclone[i - 1], scaleclone[i - 1], eulerclone[i - 1], directionclone[i - 1]);
                    }
                }
            }
        }
    }
コード例 #2
0
ファイル: DragonAIScript.cs プロジェクト: loserboi23/Pacify
    IEnumerator PositionUpdating()
    {
        while (true)
        {
            DirectionScript.GameObjectDirection next_dir = ChooseDirection();
            int random;

            if (!isFed)
            {
                random = Random.Range(4, 10);
            }
            else
            {
                random = 100;
            }

            if (next_dir == DirectionScript.GameObjectDirection.Left || next_dir == DirectionScript.GameObjectDirection.Right)
            {
                int x = 0;
                x             = next_dir == DirectionScript.GameObjectDirection.Left ? -1 : 1;
                target_offset = new Vector3(x * 1.0f, 0.0f, 0);
            }
            else
            {
                int x = 0;
                x             = next_dir == DirectionScript.GameObjectDirection.Down ? -1 : 1;
                target_offset = new Vector3(0, x * 1.0f, 0);
            }
            yield return(StartCoroutine(DragonMovement(random, target_offset, next_dir)));

            gameObject.GetComponent <DirectionScript>().SetDirection(next_dir);
            yield return(new WaitForSeconds(0.65f));
        }
    }