示例#1
0
    public void InitCellView1()
    {
        List<CellData> celldatas = new List<CellData>(celldatas = tableData.CellDatas);        
        int length = tableData.CellDatas.Count;

        if (tableData.CellDatas == null)
        {
            Debug.Log("无元素");
            return;
        }            
        for (int i = 0; i < length; i++)
        {
            var go = Instantiate(cell) as GameObject;
            go.transform.parent = mRoot;
            go.transform.localScale = Vector3.one;
            go.name = tableData.CellDatas[i].altas;

            UILabel label = go.transform.GetComponentInChildren<UILabel>();
            label.text = go.name;
            UIDragScrollView dragScrollView = go.GetComponent<UIDragScrollView>();
            dragScrollView = mDragScrollView;

            ObjState objState = go.GetComponent<ObjState>();
            objState.CellInfo = celldatas[i];
            objState.InfoTable = mInfoTable.GetComponent<NTable>();
            objState.parentTable = this;
        }
    }
 public void OnStateChange(ObjState newState, ObjState previousState, Transform attachmentTransform, Mount attachTo = null, bool isReady = true)
 {
     if (previousState == ObjState.Despawned && (newState & ObjState.Visible) != 0)
     {
         _charges = initialCharges;
     }
 }
示例#3
0
        /// <summary>
        /// Responds to State change from SyncState
        /// </summary>
        public void OnStateChange(ObjState state, Transform attachmentTransform, Mount attachTo = null, bool isReady = true)
        {
            if (state == prevState)
            {
                return;
            }

            if (IsMine)
            {
                if (respawnEnable)
                {
                    if (state == ObjState.Despawned)
                    {
                        ticksUntilRespawn = respawnWaitAsTicks;
                    }
                    /// Check if the flag we are looking for just changed to true
                    else if ((prevState & respawnOn) == 0 && (state & respawnOn) != 0)
                    {
                        ticksUntilRespawn = respawnWaitAsTicks;
                    }
                }

                if (despawnEnable)
                {
                    /// Check if the flag we are looking for just changed to true
                    if ((prevState & despawnOn) == 0 && (state & despawnOn) != 0)
                    {
                        ticksUntilDespawn = despawnWaitAsTicks;
                    }
                }
            }


            prevState = state;
        }
示例#4
0
    //销毁
    public virtual void Destroy()
    {
        OptList <EffectController> .List.Clear();

        gameObject.GetComponentsInChildren(OptList <EffectController> .List);
        {
            var __array3       = OptList <EffectController> .List;
            var __arrayLength3 = __array3.Count;
            for (var __i3 = 0; __i3 < __arrayLength3; ++__i3)
            {
                var effect = __array3[__i3];
                {
                    effect.trans.parent = null;
                    EffectManager.Instance.StopEffect(effect.Id);

                    //ComplexObjectPool.Release(effect.gameObject);
                }
            }
        }
        ComplexObjectPool.Release(mModel);
        mModel = null;

        StopAllCoroutines();
        ComplexObjectPool.Release(gameObject);
        State            = ObjState.Deleted;
        UniqueResourceId = 0;
    }
示例#5
0
    /// <summary>
    /// SaveData用のstringをtextで書き出す
    /// </summary>
    /// <param name="d"></param>
    public void Writetext(ObjState d)
    {
        string path = @"..\\Text\lll.txt";
        string text = d.SaveString;

        File.WriteAllText(path, text);
    }
示例#6
0
    // Update is called once per frame
    void Update()
    {
        clientObject.transform.localPosition = new Vector3(0.0f, Mathf.Sin(time), 0.0f);

        time += 0.1f;


        if (client.IsConnected)
        {
            ObjState state = new ObjState(clientObject.transform.localPosition, clientObject.transform.localRotation);

            for (int i = 0; i < numSend; i++)
            {
                client.Send(0, state);
            }
        }

        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            client.Send(1, "Hello Unity!");
        }

        if (Input.GetKeyDown(KeyCode.C))
        {
            Color color = new Color(
                Random.Range(0.0f, 1.0f),
                Random.Range(0.0f, 1.0f),
                Random.Range(0.0f, 1.0f),
                1.0f
                );
            clientRenderer.material.SetColor("_Color", color);
            client.Send(2, color);
        }
    }
 public void OnStateChange(ObjState newState, ObjState previousState, Transform attachmentTransform, Mount attachTo = null, bool isReady = true)
 {
     if (IsMine)
     {
         SetOwnedKinematics(newState);
     }
 }
示例#8
0
        public virtual void QueueStateChange(ObjState newState, Mount newMount, Vector3 offset, Vector3 velocity, bool force)
        {
            //if (IsMine)
            //	Debug.Log(Time.time + " " + name + "<b> QUE STATE </b>" + newState);

            stateChangeQueue.Enqueue(new StateChangeInfo(newState, newMount, offset, velocity, force));
        }
示例#9
0
 //初始化
 public virtual bool Init(InitBaseData initData, Action callback = null)
 {
     State   = ObjState.LogicDataInited;
     mObjId  = initData.ObjId;
     mDataId = initData.DataId;
     return(true);
 }
示例#10
0
        /// <summary>
        /// Internal. StateSync uses this method to tell the SyncTransform what the parent object is. SyncTransform needs to know about parent changes
        /// to avoid interpolating/extrapolating across parent changes.
        /// </summary>
        /// <param name="state"></param>
        /// <param name="newParent"></param>
        public void UpdateParent(ObjState state, Transform newParent)
        {
            teleNewParentId = newParent ? newParent.GetInstanceID() :
                              (state & ObjState.Attached) != 0 ? -2 : -1;

            //if (GetComponent<SyncState>())
            //	Debug.Log(Time.time + " <b><color=green>UpdateParent </color></b>" + teleNewParentId);
        }
示例#11
0
 public override void Clear()
 {
     base.Clear();
     state         = 0;
     mountToViewID = null;
     mountTypeId   = null;
     //respawn = false;
 }
示例#12
0
 public override void Clear()
 {
     base.Clear();
     state                 = 0;
     attachedToNetId       = null;
     attachedToMountTypeId = null;
     //respawn = false;
 }
示例#13
0
 public void OnStateChange(ObjState newState, ObjState previousState, Transform attachmentTransform, Mount attachTo = null, bool isReady = true)
 {
     // TODO: this is test code. Might need to be more selective about clearing this on state changes.
     if (preventRepeats)
     {
         this.triggeringEnters.Clear();
     }
 }
示例#14
0
 public StateChangeInfo(ObjState itemState, Mount mount, bool force)
 {
     this.objState  = itemState;
     this.mount     = mount;
     this.offsetPos = null;
     this.offsetRot = null;
     this.velocity  = null;
     this.force     = force;
 }
示例#15
0
 public StateChangeInfo(ObjState itemState, Mount mount, Vector3?offsetPos, Vector3?velocity, bool force)
 {
     this.objState  = itemState;
     this.mount     = mount;
     this.offsetPos = offsetPos;
     this.offsetRot = null;
     this.velocity  = velocity;
     this.force     = force;
 }
示例#16
0
 public StateChangeInfo(StateChangeInfo src)
 {
     this.objState  = src.objState;
     this.mount     = src.mount;
     this.offsetPos = src.offsetPos;
     this.offsetRot = src.offsetRot;
     this.velocity  = src.velocity;
     this.force     = src.force;
 }
示例#17
0
 protected virtual void SetState(int i, ObjState state)
 {
     spriteRenderers[i].sortingOrder = state.SortingOrder + order;
     spriteRenderers[i].material     = state.SpriteMaterial;
     spriteRenderers[i].enabled      = state.SpriteEnabled;
     colliders[i].enabled            = state.ColliderEnabled;
     colliders[i].isTrigger          = state.ColliderTrigger;
     colliders[i].gameObject.layer   = state.Layer;
 }
示例#18
0
            public override void CopyFrom(FrameBase sourceFrame)
            {
                base.CopyFrom(sourceFrame);
                Frame src = sourceFrame as Frame;

                state = src.state;
                //respawn = false;
                attachedToNetId       = src.attachedToNetId;
                attachedToMountTypeId = src.attachedToMountTypeId;
            }
示例#19
0
        //public void Attach(Mount mount)
        //{
        //	/// Keep the current visibile state, change all others to just Attached
        //	var currentVisibleFlag = (currentState.state & ObjState.Visible);
        //	//Debug.Log(name + "<b> QUE Attach </b>");
        //	stateChangeQueue.Enqueue(new StateChangeInfo(currentVisibleFlag | ObjState.Attached, mount, true));


        //}


        public void SoftMount(Mount attachTo)
        {
            const ObjState MOUNT_ADD_FLAGS = ObjState.Mounted;
            const ObjState MOUNT_REM_FLAGS = ObjState.Dropped | ObjState.Transit;

            ObjState newstate = attachTo ? (currentState.state & ~MOUNT_REM_FLAGS) | MOUNT_ADD_FLAGS : currentState.state & ~MOUNT_ADD_FLAGS;

            //QueueStateChange(newstate, attachTo, false);
            ChangeState(new StateChangeInfo(newstate, attachTo, false));
        }
示例#20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="mountTo"></param>
        public void HardMount(Mount mountTo)
        {
            const ObjState MOUNT_ADD_FLAGS = ObjState.Mounted | ObjState.Anchored;
            const ObjState MOUNT_REM_FLAGS = ObjState.Dropped | ObjState.Transit;

            ObjState newstate = mountTo ? (currentState.state & ~MOUNT_REM_FLAGS) | MOUNT_ADD_FLAGS : currentState.state & ~MOUNT_ADD_FLAGS;

            //QueueStateChange(newstate, mountTo, false);
            ChangeState(new StateChangeInfo(newstate, mountTo, false));
        }
示例#21
0
            public override void CopyFrom(FrameBase sourceFrame)
            {
                base.CopyFrom(sourceFrame);
                Frame src = sourceFrame as Frame;

                state = src.state;
                //respawn = false;
                mountToViewID = src.mountToViewID;
                mountTypeId   = src.mountTypeId;
            }
示例#22
0
 public void SaveState()
 {
     initState = new ObjState();
     initState.platformMask    = platformMask;
     initState.triggerMask     = triggerMask;
     initState.interactFlag    = interactFlag;
     initState.isSleep         = isSleep;
     initState.pos             = transform.position;
     initState.currentLayer    = gameObject.layer;
     initState.maskInteraction = GetComponent <SpriteRenderer>().maskInteraction;
 }
示例#23
0
 public void OnStateChange(ObjState newState, ObjState previousState, Transform attachmentTransform, Mount attachTo = null, bool isReady = true)
 {
     /// Detect respawn (change from despawned to any other state currently) and reset values when that occurs.
     if (wasDespawned && newState != ObjState.Despawned)
     {
         for (int i = 0; i < vitalsCount; ++i)
         {
             vitalArray[i].ResetValues();
         }
     }
     wasDespawned = newState == ObjState.Despawned;
 }
示例#24
0
    // Update is called once per frame
    void Update()
    {
        clientObject.transform.localPosition = new Vector3(0.0f, Mathf.Sin(time), 0.0f);

        time += 0.1f;

        ObjState state = new ObjState(clientObject.transform.localPosition, clientObject.transform.localRotation);

        for (int i = 0; i < numSend; i++)
        {
            client.Send(lnode, 0, state);
        }
    }
示例#25
0
    public void InitMap(ref Transform[] cells)
    {
        var atlas_go = Resources.Load <GameObject>("Art/UI/" + Nglobal.DictionaryName.Wall);

        for (int i = 0; i < cells.Length; i++)
        {
            ObjState objstate = cells[i].GetComponent <ObjState>();
            objstate.CellInfo = null;
            UISprite mUISprite = cells[i].GetComponent <UISprite>();
            mUISprite.atlas = atlas_go.GetComponent <UIAtlas>();
            mUISprite.GetComponent <UIButton>().normalSprite = previewName;
            cells[i].name = "cell";
        }
    }
示例#26
0
        /// <summary>
        /// Responds to State change from SyncState
        /// </summary>
        public void OnStateChange(ObjState state, Transform attachmentTransform, Mount attachTo = null, bool isReady = true)
        {
            /// If IsMine, we already Fired this in order to test for consumption.
            if (!IsMine)
            {
                var currentAttachedIVC = (attachTo) ? attachTo.GetComponentInParent <IContacting>() : null;
                var triggerEvent       = new ContactEvent(null, currentAttachedIVC, null, null, ContactType.Enter);

                for (int i = 0; i < onPickupCallbacks.Count; ++i)
                {
                    onPickupCallbacks[i].OnPickup(triggerEvent);
                }
            }
        }
示例#27
0
        public static Microsoft.EntityFrameworkCore.EntityState ConvertState(ObjState objstate)
        {
            switch (objstate)
            {
            case ObjState.Added:
                return(Microsoft.EntityFrameworkCore.EntityState.Added);

            case ObjState.Modified:
                return(Microsoft.EntityFrameworkCore.EntityState.Modified);

            case ObjState.Deleted:
                return(Microsoft.EntityFrameworkCore.EntityState.Deleted);

            default:
                return(Microsoft.EntityFrameworkCore.EntityState.Unchanged);
            }
        }
示例#28
0
        private EntityState ConvertState(ObjState state)
        {
            switch (state)
            {
            case ObjState.Added:
                return(EntityState.Added);

            case ObjState.Modified:
                return(EntityState.Modified);

            case ObjState.Deleted:
                return(EntityState.Deleted);

            default:
                return(EntityState.Unchanged);
            }
        }
示例#29
0
        private static GameObject AddStatePlaceholder(this GameObject go, string name,
                                                      ObjStateLogic.Operator op, ObjState mask, ObjState notmask, ColliderType colliderType, PrimitiveType primitiveType,
                                                      AssistColor color, Space_XD space, Dynamics dynamics, float scale = 1)
        {
            string label = name + " Model";

            var visObj = new GameObject(label);

            visObj.transform.parent = go.transform;
            var toggle = visObj.AddComponent <OnStateChangeToggle>();

            toggle.stateLogic.notMask   = (int)notmask;
            toggle.stateLogic.operation = op;
            toggle.stateLogic.stateMask = (int)mask;

            visObj.CreateNewPrimitiveAsChild(primitiveType, colliderType, label + " Placeholder", scale, color);
            return(visObj);
        }
示例#30
0
        private static void AddStatePlaceholder(this GameObject go, int enumindex, Space_XD space, Dynamics dynamics, float scale = 1)
        {
            ObjState mask  = itemStateEnumValues[enumindex];
            string   label = itemStateEnumNames[enumindex] + " Model";

            var visObj = new GameObject(label);

            visObj.transform.parent = go.transform;
            var toggle = visObj.AddComponent <OnStateChangeToggle>();

            toggle.stateLogic.operation = enumindex == 0 ? ObjStateLogic.Operator.EQUALS : ObjStateLogic.Operator.AND;
            toggle.stateLogic.stateMask = (int)mask;

            /// Set the collider settings for each State
            ColliderType coltype =
                (mask == 0) ? ColliderType.None :
                ((mask & ObjState.Attached) != 0) ? ColliderType.None :
                ((mask & (ObjState.Dropped | ObjState.Transit)) != 0) ? ColliderType.Full :
                ColliderType.Trigger;

            PrimitiveType primtype =
                mask == ObjState.Visible ? PrimitiveType.Sphere :
                mask == ObjState.Attached ? PrimitiveType.Cube :
                mask == ObjState.Dropped ? PrimitiveType.Cylinder :
                PrimitiveType.Capsule;

            if (blackMat == null)
            {
                SetUpMaterials();
            }

            Material material =
                mask == ObjState.Despawned ? blackMat :
                mask == ObjState.Visible ? cyanMat :
                mask == ObjState.Attached ? magentaMat :
                mask == ObjState.Dropped ? redMat :
                greenMat;

            var primitive = visObj.CreateNewPrimitiveAsChild(primtype, coltype, label + " Placeholder", scale);

            primitive.GetComponent <Renderer>().material = material;
        }