Ejemplo n.º 1
0
    private bool ResavePositionData()
    {
        if (Storage.Instance.IsCorrectData)
        {
            Debug.Log("_______________ResavePositionData     RETURN CorrectData ON CORRECT_______________");
            return(true);
        }

        //+++++++++++ RESAVE Next Position ++++++++++++
        if (!string.IsNullOrEmpty(_resName) && _resName != this.gameObject.name)
        {
            Debug.Log("################## ERROR MoveObjectToPosition ===========PRED========= rael name: " + this.gameObject.name + "  new name: " + _resName);
        }

        string oldName = this.gameObject.name;

        _resName = _dataUfo.NextPosition(this.gameObject);

        if (_resName == "Error")
        {
            return(false);
        }

        //if (_resName == "Update")
        //{
        //    //CORRECT
        //    Debug.Log("++++ ResavePositionData CORRECT +++ (" + this.gameObject.name + ")-- call FindObjectData");
        //    _dataUfo = FindObjectData("ResavePositionData >> CORRECT") as SaveLoadData.GameDataUfo;
        //    oldName = this.gameObject.name;
        //}

        if (!string.IsNullOrEmpty(_resName))
        {
            if (oldName != _resName)
            {
                string callInfo = "ResavePositionData >> oldName(" + oldName + ") != _resName(" + _resName + ")";
                _dataUfo = FindObjectData(callInfo) as ModelNPC.GameDataUfo;
                if (_dataUfo == null)
                {
                    Debug.Log("################## ERROR MoveObjectToPosition dataUfo is Empty   GO:" + this.gameObject.name);
                    return(false);
                }
            }
            if (_resName != this.gameObject.name)
            {
                Debug.Log("################## ERROR MoveObjectToPosition ===========POST========= rael name: " + this.gameObject.name + "  new name: " + _resName);
                this.gameObject.name = _resName;
            }
        }

        return(true);
        //+++++++++++++++++++++++
    }
Ejemplo n.º 2
0
    IEnumerator MoveObjectToPosition()
    {
        Vector3 lastPositionForLock      = transform.position;
        Vector3 lastPositionForMoveField = transform.position;

        int   stepTest      = 0;
        int   stepLimitTest = 10;
        float minDist       = 0.005f; //0.01f;

        int   speed = 5;
        float step  = speed * Time.deltaTime;


        if (!Helper.IsDataInit(this.gameObject))
        {
            //yield return null;
            yield break;
        }

        //@SAVE@  var dataUfo = FindObjectData() as SaveLoadData.GameDataUfo;
        _dataUfo = FindObjectData("MoveObjectToPosition Init") as ModelNPC.GameDataUfo;

        while (true)
        {
            if (Storage.Instance.IsLoadingWorld)
            {
                Debug.Log("_______________ LOADING WORLD ....._______________");
                yield return(null);
            }

            if (Storage.Instance.IsCorrectData)
            {
                Debug.Log("_______________ RETURN CorrectData ON CORRECT_______________");
                yield return(null);
            }

            if (_dataUfo == null)
            {
                Debug.Log("########################## UFO MoveObjectToPosition dataUfo is EMPTY");
                //Debug.Log("*** DESTROY : " + this.gameObject.name);
                //Storage.Instance.AddDestroyRealObject(this.gameObject);
                //@CD@
                Storage.Fix.CorrectData(null, this.gameObject, "MoveObjectToPosition");

                yield break;
            }

            stepTest++;
            if (stepTest > stepLimitTest)
            {
                float distLock = Vector3.Distance(lastPositionForLock, transform.position);
                if (distLock < minDist)
                {
                    //Debug.Log("MoveObjectToPosition ------ UFO LOCK !!!!  > " + distLock);
                    _dataUfo.SetTargetPosition();
                }
                lastPositionForLock = transform.position;
                stepTest            = 0;
            }

            Vector3 targetPosition = _dataUfo.TargetPosition;
            Vector3 pos            = Vector3.MoveTowards(transform.position, targetPosition, step);

            if (_rb2d != null)
            {
                _rb2d.MovePosition(pos);
            }
            else
            {
                //@[email protected]
                Debug.Log("UFO MoveObjectToPosition Set position 2 original........");
                transform.position = pos;
            }

            //+++++++++++ RESAVE Next Position ++++++++++++
            bool res = ResavePositionData();

            if (!res)
            {
                Debug.Log("########### STOP MOVE ON ERROR MOVE");
                if (this.gameObject != null)
                {
                    Debug.Log("%%%%%%%%%%%%%%%%%%%%%%%%%%%  MoveObjectToPosition " + this.gameObject.name);
                }
                Destroy(this.gameObject);
                yield break;
            }

            float dist = Vector3.Distance(targetPosition, transform.position);
            //Debug.Log("MoveObjectToPosition ------ UFO distance to point  > " + dist);
            if (dist < minDist)
            {
                _dataUfo.SetTargetPosition();
            }

            yield return(null);
        }
    }
Ejemplo n.º 3
0
 //@SAVE@
 public void UpdateData(string callFunc)
 {
     //Debug.Log("_____________GameObject.UpdateData ________________" + this.name);
     _dataUfo = FindObjectData(callFunc) as ModelNPC.GameDataUfo;
     //testNewName = dataUfo.NameObject;
 }