2019-09-30 17:16:41 u013628121 阅读数 45
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    List<EntryDate > PlayerEntryDateList =new List<EntryDate > ();

    int currIndex=0;
    GameObject currPlayerGo;
    EntryDate currPlayerDate;
    
    void UpdateUI()
    {

        int Count= PlayerEntryDateList.Count;
        if (Count-1  == currIndex || Count - 1 == 0 )
        {
            rightButton.gameObject.SetActive(false);
        }
        else
        {
            rightButton.gameObject.SetActive(true);
        }


        if(currIndex==0 || Count - 1 == 0 )
        {
            leftButton.gameObject.SetActive(false);
        }
        else
        {
            leftButton.gameObject.SetActive(true);
        }


    }
    
    GameObject CreatPlayer()
    {
       currPlayerDate = PlayerEntryDateList[currIndex];
        var playerGo =Instantiate(currPlayerDate.prefab);
        UpdateUI();
        return playerGo;
    }
    
    void leftButton_Click()
    {
        currIndex--;
        DestroyImmediate(currPlayerGo);
        currPlayerGo = CreatPlayer();
    }
    void rightButton_Click()
    {
        currIndex++;
        DestroyImmediate(currPlayerGo);
        currPlayerGo = CreatPlayer();
    }

 

2015-01-08 21:58:29 qq617119142 阅读数 2815
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

Vector3 forward = transform.TransformDirection(Vector3.forward);
		Vector3 toOther = (attackParams.targePos- transform.position).normalized;
		float dot = Vector3.Dot (forward, toOther);



dot > 0  前方


< 0  后方

2015-08-29 10:15:00 allen332211 阅读数 134
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

  private Vector2 firstTouch = Vector2.zero;//手指开始按下的位置
   private Vector2 secondTouch =Vector2.zero;//手指拖动的位置

    void OnGUI()
    {
        if (Event.current.type == EventType.mouseDown) { //判断当前手指是按下事件
            firstTouch = Event.current.mousePosition;    //记录开始按下的位置
        }
        if (Event.current.type == EventType.mouseDrag) {    //判断当前手指是拖动事件
            secondTouch = Event.current.mousePosition;    //记录拖动的位置
            if (secondTouch.x < firstTouch.x) {//拖动的位置比按下的位置的x小
                print ("left");
            }
            if (secondTouch.x > firstTouch.x) {//拖动的位置比按下的位置的x大
                print ("right");
            }
            firstTouch = secondTouch;
        }
    }

转载于:https://www.cnblogs.com/laugher/p/4768554.html

2014-08-07 01:44:36 wolf96 阅读数 1288
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

        原文:http://blog.csdn.net/cen616899547/article/details/38336185

在做rpg类游戏的过程中,经常遇到要判断周围怪物相对自身的方位


1.判断目标在自己的前后方位可以使用下面的方法:

   Vector3.Dot(transform.forward, target.position)

       返回值为正时,目标在自己的前方,反之在自己的后方

2.判断目标在机子的左右方位可以使用下面的方法:

   Vector3.Cross(transform.forward, target.position).y

      返回值为正时,目标在自己的右方,反之在自己的左方


3.在这里顺便解说下关于空间向量的点积和叉积:

A.点积 
  点积的计算方式为:  a·b=|a|·|b|cos<a,b>  其中|a|和|b|表示向量的模,<a,b>表示两个向量的夹角。另外在 点积 中,<a,b>和<b,a> 夹角是不分顺序的。 
  所以通过点积,我们其实是可以计算两个向量的夹角的。 
  另外通过点积的计算我们可以简单粗略的判断当前物体是否朝向另外一个物体: 只需要计算当前物体的transform.forward向量与 otherObj.transform.position 的点积即可, 大于0则在前方,否则在后方。

B.叉积 
  叉积的定义: c =a x b  其中a,b,c均为向量。即两个向量的叉积得到的还是向量! 
  性质1: c⊥a,c⊥b,即向量c垂直与向量a,b所在的平面 。 
  性质2: 模长|c|=|a||b|sin<a,b> 
  性质3: 满足右手法则 。从这点我们有axb ≠ bxa,而axb = – bxa。所以我们可以使用叉积的正负值来判断向量a,b的相对位置,即向量b是处于向量a的顺时针方向还是逆时针方向

2017-11-08 17:42:58 qq_37655053 阅读数 166
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

准备着手做款2d游戏。这两天在看各种资料。研究到ZenJect,一个unity3d下IOC的框架。解耦很厉害,但是一时有点难以接受,摸索中。研究其例子的时候,

看到一段代码,计算正交相机下,各边界的值。还是不错的,(如果用sprite制作2d游戏,这个值刚好方便判断各分辨率下上下左右的数值,单位非px)代码如下:

    public class LevelHelper
    {
        readonly Camera _camera;

        public LevelHelper(
            [Inject(Id = "Main")]
            Camera camera)
        {
            _camera = camera;
        }

        public float Bottom
        {
            get { return -ExtentHeight; }
        }

        public float Top
        {
            get { return ExtentHeight; }
        }

        public float Left
        {
            get { return -ExtentWidth; }
        }

        public float Right
        {
            get { return ExtentWidth; }
        }

        public float ExtentHeight
        {
            get { return _camera.orthographicSize; }
        }

        public float Height
        {
            get { return ExtentHeight * 2.0f; }
        }

        public float ExtentWidth
        {
            get { return _camera.aspect * _camera.orthographicSize; }
        }

        public float Width
        {
            get { return ExtentWidth * 2.0f; }
        }
    }

待补充....


没有更多推荐了,返回首页