private void PrepareNivose()
    {
        // _mOrigPosition = Globals.Instance.MSceneManager.mMainCamera.transform.position;
        // _mOrigEulerAngles = Globals.Instance.MSceneManager.mMainCamera.transform.rotation.eulerAngles;
        // _mOrigCullingMask = Globals.Instance.MSceneManager.mMainCamera.cullingMask;
        //
        // Globals.Instance.MSceneManager.mMainCamera.transform.position = _mSkillUser.U3DGameObject.transform.position + new Vector3(0.0f, 50.0f, -100.0f);
        // Globals.Instance.MSceneManager.mMainCamera.transform.LookAt(_mSkillUser.U3DGameObject.transform.position);

        int cullingMask = LayerMaskDefine.GetCullMaskEveryThing();

        cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.GUI);
        cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.NIVOSE_RENDER);
        Globals.Instance.MSceneManager.mMainCamera.cullingMask = cullingMask;

        // Duplicate a RTT camera
        GameObject cam = new GameObject();

        cam.name = "RttCamera";
        _mRTTCam = cam.AddComponent(typeof(Camera)) as Camera;
        _mRTTCam.CopyFrom(Globals.Instance.MSceneManager.mMainCamera);
        _mRTTCam.cullingMask    = LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.NIVOSE_RENDER);
        _mRTTCam.clearFlags     = CameraClearFlags.Depth;
        _mRTTCam.depth          = Globals.Instance.MSceneManager.mMainCamera.depth + 2;
        _mRTTCam.gameObject.tag = TagMaskDefine.UNTAGGED;

        // A transparent plane
        CreateOcclusionPlane();
    }
Exemple #2
0
    protected override void Awake()
    {
        base.Awake();
        base.radius = 200.0f;

        base.DoChange();
        LayerMaskDefine.SetLayerRecursively(this.gameObject, LayerMaskDefine.IGNORE_RAYCAST);
    }
    private void CreateOcclusionPlane()
    {
        Object obj = Resources.Load("Common/OcclusionPlane");

        _mOcclusionPlane = Object.Instantiate(obj) as GameObject;
        LayerMaskDefine.SetLayerRecursively(_mOcclusionPlane, LayerMaskDefine.DEFAULT);

        _mOcclusionPlane.transform.parent        = Globals.Instance.MSceneManager.mMainCamera.transform;
        _mOcclusionPlane.transform.localRotation = Quaternion.Euler(new Vector3(-90.0f, 0.0f, 0.0f));
        _mOcclusionPlane.transform.localPosition = new Vector3(0.0f, 0.0f, Globals.Instance.MSceneManager.mMainCamera.near + 0.1f);
        _mOcclusionPlane.transform.localScale    = new Vector3(Globals.Instance.MSceneManager.mMainCamera.near, 1.0f, Globals.Instance.MSceneManager.mMainCamera.near);
    }
Exemple #4
0
    public void ReplaceMode(string newResouce, CreateCallback callback)
    {
        Globals.Instance.MResourceManager.Load(newResouce, delegate(Object obj, string error)
        {
            if (null == obj)
            {
                return;
            }

            GameObject.Destroy(_thisGameObject);

            _thisGameObject = GameObject.Instantiate(obj, Vector3.zero, Quaternion.identity) as GameObject;
            GameObject.DontDestroyOnLoad(_thisGameObject);
            LayerMaskDefine.SetLayerRecursively(_thisGameObject, LayerMaskDefine.REFLECTION);

            if (_warshipName != null)
            {
                _thisGameObject.name = _warshipName;
            }

            Animation am = _thisGameObject.GetComponent <Animation>();
            if (am != null)
            {
                _mAnimationController = new AnimationController(am);
            }
            else
            {
                am = _thisGameObject.GetComponentInChildren <Animation>();
                if (am != null)
                {
                    _mAnimationController = new AnimationController(am);
                }
            }

            _emitEffectFontUtil = _thisGameObject.AddComponent <EmitEffectFontUtil>();

            AddPropertyComp();
            Create3DName();
            CreateWarshipHeader();
            Show3DName(false);

            InitializeAttachmentSlots();

            if (null != callback)
            {
                callback(this);
            }

            IsLoaded = true;
        });
    }
Exemple #5
0
    public void SetSize(Vector3 center, Vector3 size)
    {
        BoxCollider coll = gameObject.GetComponent <BoxCollider>() as BoxCollider;

        if (null == coll)
        {
            coll = gameObject.AddComponent <BoxCollider>() as BoxCollider;
        }

        // coll.center = center;
        coll.size      = size;
        coll.isTrigger = true;
        LayerMaskDefine.SetLayerRecursively(this.gameObject, LayerMaskDefine.GUI);
    }
Exemple #6
0
    void Awake()
    {
        Vector3     boxSize = new Vector3(70.0f, 20.0f, 70.0f);
        BoxCollider coll    = gameObject.GetComponent <BoxCollider>() as BoxCollider;

        if (null == coll)
        {
            coll = gameObject.AddComponent <BoxCollider>() as BoxCollider;
        }

        coll.size      = boxSize;
        coll.isTrigger = true;

        // LayerMaskDefine.SetLayerRecursively(this.gameObject, LayerMaskDefine.IGNORE_RAYCAST);
        LayerMaskDefine.SetLayerRecursively(this.gameObject, LayerMaskDefine.GUI);
    }
Exemple #7
0
    public GameObject CreateEZ3DItem(UnityEngine.Object prefab, Vector3 worldPos, int Layer = 8)
    {
        GameObject go = GameObject.Instantiate(prefab) as GameObject;

        go.name                 = "UI3DItem" + _mEZ3DObjList.Count;
        go.transform.parent     = EZ3DItemParent;
        go.transform.localScale = Vector3.one;

        Vector3 guiPos = GUIManager.WorldToGUIPoint(worldPos);

        guiPos.x *= Globals.Instance.M3DItemManager.EZ3DItemParentScaleInv.x;
        guiPos.y *= Globals.Instance.M3DItemManager.EZ3DItemParentScaleInv.y;
        go.transform.localPosition = new Vector3(guiPos.x, guiPos.y, GUIManager.GUI_NEAREST_Z);

        // Set GUI layer
        LayerMaskDefine.SetLayerRecursively(go, Layer);

        _mEZ3DObjList.Add(go.GetInstanceID(), go);

        return(go);
    }
Exemple #8
0
    IEnumerator Create2DPackedEffect(PackedSprite prefab, Vector3 guiPos, float length, EffectEndDelegate endDel = null)
    {
        PackedSprite sprite = Instantiate(prefab) as PackedSprite;

        sprite.gameObject.name      = "UI3DItem" + _mEZ3DObjList.Count;
        sprite.transform.parent     = EZ3DItemParent;
        sprite.transform.localScale = Vector3.one;

        guiPos.x *= Globals.Instance.M3DItemManager.EZ3DItemParentScaleInv.x;
        guiPos.y *= Globals.Instance.M3DItemManager.EZ3DItemParentScaleInv.y;
        sprite.transform.localPosition = new Vector3(guiPos.x, guiPos.y, GUIManager.GUI_NEAREST_Z);
        sprite.PlayAnim(0);

        LayerMaskDefine.SetLayerRecursively(sprite.gameObject, LayerMaskDefine.GUI);

        yield return(new WaitForSeconds(length));

        if (null != endDel)
        {
            endDel();
        }

        Destroy(sprite.gameObject);
    }
Exemple #9
0
 protected override void OnDestroy()
 {
     base.OnDestroy();
     LayerMaskDefine.SetLayerRecursively(this.gameObject, LayerMaskDefine.DEFAULT);
 }
Exemple #10
0
    public virtual void Initialize(CreateCallback callback)
    {
        // Object obj = Resources.Load (_warshipResourceName);
        // if (null == obj)
        //  return;
        //
        // _thisGameObject = GameObject.Instantiate(obj, Vector3.zero, Quaternion.identity) as GameObject;
        // // Control the GameObject ourself
        // GameObject.DontDestroyOnLoad(_thisGameObject);
        //
        // if (_warshipName != null)
        //  _thisGameObject.name = _warshipName;
        // Animation am = _thisGameObject.GetComponent<Animation>();
        // if (am != null)
        // {
        //  _mAnimationController = new AnimationController(am);
        // }
        // else
        // {
        //  am = _thisGameObject.GetComponentInChildren<Animation>();
        //  if (am != null)
        //      _mAnimationController = new AnimationController(am);
        // }
        //
        // _emitEffectFontUtil = _thisGameObject.AddComponent<EmitEffectFontUtil>();
        //
        // AddPropertyComp();
        // Create3DName();
        // Show3DName(false);
        //
        // InitializeAttachmentSlots();
        //
        // // Notify warship is created
        // OnWarshipCreated();
        //
        // if (null != callback)
        //  callback(this);
        //
        // IsLoaded = true;

        Globals.Instance.MResourceManager.Load(_warshipResourceName, delegate(Object obj, string error)
        {
            if (null == obj)
            {
                return;
            }

            _thisGameObject = GameObject.Instantiate(obj, Vector3.zero, Quaternion.identity) as GameObject;
            // Control the GameObject ourself
            GameObject.DontDestroyOnLoad(_thisGameObject);
            LayerMaskDefine.SetLayerRecursively(_thisGameObject, LayerMaskDefine.REFLECTION);

            if (_warshipName != null)
            {
                _thisGameObject.name = _warshipName;
            }
            Animation am = _thisGameObject.GetComponent <Animation>();
            if (am != null)
            {
                _mAnimationController = new AnimationController(am);
            }
            else
            {
                am = _thisGameObject.GetComponentInChildren <Animation>();
                if (am != null)
                {
                    _mAnimationController = new AnimationController(am);
                }
            }

            _emitEffectFontUtil = _thisGameObject.AddComponent <EmitEffectFontUtil>();

            AddPropertyComp();
            Create3DName();
            CreateWarshipHeader();
            Show3DName(false);

            InitializeAttachmentSlots();

            // Notify warship is created
            OnWarshipCreated();

            if (null != callback)
            {
                callback(this);
            }

            IsLoaded = true;
        });
    }
    // Update is called once per frame
    public override void Update()
    {
        if (_mSkillIsEnd)
        {
            return;
        }

        _mCurrentTrackTime += Time.deltaTime;
        if (!_mIsFireParticleCreated)
        {
            CreateFireParticle();
        }

        if (null != _mRTTCam)
        {
            _mRTTCam.transform.position = Globals.Instance.MSceneManager.mMainCamera.transform.position;
            _mRTTCam.transform.rotation = Globals.Instance.MSceneManager.mMainCamera.transform.rotation;
        }

        switch (_mSkillState)
        {
        case SkillState.FIRE:
        {
            if (_mFireDuration <= 0.0f)
            {
                if (!_mIsFlyParticleCreated)
                {
                    CreateFlyParticle();
                }
            }
            _mFireDuration -= Time.deltaTime;

            break;
        }

        case SkillState.FLY:
        {
            if (null != _mRTTCam)
            {
                if (null != _mOcclusionPlane)
                {
                    GameObject.Destroy(_mOcclusionPlane);
                }
                _mOcclusionPlane = null;

                GameObject.Destroy(_mRTTCam.gameObject);
                _mRTTCam = null;

                int cullingMask = LayerMaskDefine.GetCullMaskEveryThing();
                cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.GUI);
                cullingMask -= LayerMaskDefine.GetLayerCullMask(LayerMaskDefine.NIVOSE_RENDER);
                Globals.Instance.MSceneManager.mMainCamera.cullingMask = cullingMask;
                LayerMaskDefine.SetLayerRecursively(_mSkillUser.U3DGameObject, LayerMaskDefine.DEFAULT);
            }
            break;
        }

        case SkillState.HIT_TARGET:
        {
            if (null != _mFollowTarget)
            {
                // iTween.MoveTo(Globals.Instance.MSceneManager.mMainCamera.gameObject, _mOrigPosition, 1.5f);
                // iTween.RotateTo(Globals.Instance.MSceneManager.mMainCamera.gameObject, _mOrigEulerAngles, 1.5f);
            }
            break;
        }

        case SkillState.END:
        {
            break;
        }
        }

        if (!CheckSkill())
        {
            return;
        }
    }
    public override void CreateFireParticle()
    {
        // Get the skill user
        _mSkillUser = Globals.Instance.MPlayerManager.GetWarship(_mSkillDataSlot._attackerID);
        if (!_mSkillUser.Property.WarshipIsAttacker)
        {
            base.CreateFireParticle();

            // tzz modified for creating fire state
            //
            if (_mIsFireParticleCreated)
            {
                _mSkillState = SkillState.FIRE;
            }
            return;
        }

        bool isCreate = false;

        foreach (SkillEffectData.SkillFireParticleData fireParticleData in _mSkillDataSlot._skillEffectData._skillFireParticleList)
        {
            if (_mCurrentTrackTime >= fireParticleData._delayTime)
            {
                if (!isCreate)
                {
                    LayerMaskDefine.SetLayerRecursively(_mSkillUser.U3DGameObject, LayerMaskDefine.NIVOSE_RENDER);
                    PrepareNivose();
                }

                if (null != fireParticleData._skillSound)
                {
                    Globals.Instance.MSoundManager.PlaySoundEffect(fireParticleData._skillSound._soundName);
                }

                // Create the fire particle
                GameObject go = null;

                string effectName = fireParticleData._particleName;
                if (_mSkillDataSlot.MSkillData.BasicData.SkillIsNormalAttack)
                {
                    if (_mSkillUser.Property.WarshipIsAttacker)
                    {
                        effectName = fireParticleData._particleName + "_L";
                    }
                    else
                    {
                        effectName = fireParticleData._particleName + "_R";
                    }
                }
                go = GameObject.Instantiate(Resources.Load(effectName), fireParticleData._position,
                                            fireParticleData._rotation) as GameObject;

                GameObject tagPoint = _mSkillUser.GetTagPointGameObject(TagPointDefine.TAG_POINT_SHIP_CANNON);
                if (null == tagPoint)
                {
                    go.transform.position = _mSkillUser.U3DGameObject.transform.position;
                }
                else
                {
                    go.transform.parent        = tagPoint.transform;
                    go.transform.localPosition = Vector3.zero;
                }

                LayerMaskDefine.SetLayerRecursively(go, LayerMaskDefine.NIVOSE_RENDER);
                GameObject.DestroyObject(go, fireParticleData._durationTime);

                _mFireDuration = fireParticleData._durationTime;
                isCreate       = true;
                _mSkillState   = SkillState.FIRE;
            }
        }

        _mIsFireParticleCreated = isCreate;
    }